summaryrefslogtreecommitdiff
path: root/modutils
diff options
context:
space:
mode:
authorDenis Vlasenko2008-07-09 09:50:33 +0000
committerDenis Vlasenko2008-07-09 09:50:33 +0000
commitf62ab2d77455ca42e1300e72b70d06e8a16db53b (patch)
tree7a5391066d647ecec698214773eee8504c7a041a /modutils
parentdbef1173b00f0877a63121c40bf607155ac1e9a7 (diff)
downloadbusybox-f62ab2d77455ca42e1300e72b70d06e8a16db53b.zip
busybox-f62ab2d77455ca42e1300e72b70d06e8a16db53b.tar.gz
libbb: use improved xmalloc_read() from modprobe-small
who: fix compile breakage on some systems modprobe-small: improve Config help text wording
Diffstat (limited to 'modutils')
-rw-r--r--modutils/Config.in2
-rw-r--r--modutils/modprobe-small.c48
2 files changed, 1 insertions, 49 deletions
diff --git a/modutils/Config.in b/modutils/Config.in
index 25841b8..2e7f9b6 100644
--- a/modutils/Config.in
+++ b/modutils/Config.in
@@ -31,7 +31,7 @@ config MODPROBE_SMALL
than "non-small" modutils.
config FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE
- bool "module options on cmdline"
+ bool "Accept module options on modprobe command line"
default n
depends on MODPROBE_SMALL
help
diff --git a/modutils/modprobe-small.c b/modutils/modprobe-small.c
index 4f07353..1096ba7 100644
--- a/modutils/modprobe-small.c
+++ b/modutils/modprobe-small.c
@@ -14,54 +14,6 @@
#include <sys/utsname.h> /* uname() */
#include <fnmatch.h>
-/* libbb candidate */
-static void *xmalloc_read(int fd, size_t *sizep)
-{
- char *buf;
- size_t size, rd_size, total;
- off_t to_read;
- struct stat st;
-
- to_read = sizep ? *sizep : INT_MAX; /* max to read */
-
- /* Estimate file size */
- st.st_size = 0; /* in case fstat fails, assume 0 */
- fstat(fd, &st);
- /* /proc/N/stat files report st_size 0 */
- /* In order to make such files readable, we add small const */
- size = (st.st_size | 0x3ff) + 1;
-
- total = 0;
- buf = NULL;
- while (1) {
- if (to_read < size)
- size = to_read;
- buf = xrealloc(buf, total + size + 1);
- rd_size = full_read(fd, buf + total, size);
- if ((ssize_t)rd_size < 0) { /* error */
- free(buf);
- return NULL;
- }
- total += rd_size;
- if (rd_size < size) /* EOF */
- break;
- to_read -= rd_size;
- if (to_read <= 0)
- break;
- /* grow by 1/8, but in [1k..64k] bounds */
- size = ((total / 8) | 0x3ff) + 1;
- if (size > 64*1024)
- size = 64*1024;
- }
- xrealloc(buf, total + 1);
- buf[total] = '\0';
-
- if (sizep)
- *sizep = total;
- return buf;
-}
-
-
#define dbg1_error_msg(...) ((void)0)
#define dbg2_error_msg(...) ((void)0)
//#define dbg1_error_msg(...) bb_error_msg(__VA_ARGS__)