diff options
Diffstat (limited to 'package/busybox/busybox-1.13.0-modprobe.patch')
-rw-r--r-- | package/busybox/busybox-1.13.0-modprobe.patch | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/package/busybox/busybox-1.13.0-modprobe.patch b/package/busybox/busybox-1.13.0-modprobe.patch new file mode 100644 index 000000000..ecbd26c32 --- /dev/null +++ b/package/busybox/busybox-1.13.0-modprobe.patch @@ -0,0 +1,47 @@ +--- busybox-1.13.0/modutils/modprobe-small.c Thu Oct 30 08:41:28 2008 ++++ busybox-1.13.0-modprobe/modutils/modprobe-small.c Mon Nov 10 22:19:03 2008 +@@ -600,18 +600,22 @@ + free(deps); + + /* modprobe -> load it */ +- if (!is_rmmod && (options && !strstr(options, "blacklist"))) { +- errno = 0; +- if (load_module(info->pathname, options) != 0) { +- if (EEXIST != errno) { +- bb_error_msg("'%s': %s", ++ if (!is_rmmod) { ++ if (!options || strstr(options, "blacklist") == NULL) { ++ errno = 0; ++ if (load_module(info->pathname, options) != 0) { ++ if (EEXIST != errno) { ++ bb_error_msg("'%s': %s", + info->pathname, + moderror(errno)); +- } else { +- dbg1_error_msg("'%s': %s", ++ } else { ++ dbg1_error_msg("'%s': %s", + info->pathname, + moderror(errno)); ++ } + } ++ } else { ++ dbg1_error_msg("'%s': blacklisted", info->pathname); + } + } + ret: +--- busybox-1.13.0/modutils/modutils-24.c Thu Oct 30 08:41:28 2008 ++++ busybox-1.13.0-modprobe/modutils/modutils-24.c Wed Nov 12 01:02:54 2008 +@@ -3236,8 +3236,10 @@ + } + + shnum = f->header.e_shnum; +- f->sections = xmalloc(sizeof(struct obj_section *) * shnum); +- memset(f->sections, 0, sizeof(struct obj_section *) * shnum); ++ /* Growth of ->sections vector will be done by ++ * xrealloc_vector(..., 2, ...), therefore we must allocate ++ * at least 2^2 = 4 extra elements here. */ ++ f->sections = xzalloc(sizeof(f->sections[0]) * (shnum + 4)); + + section_headers = alloca(sizeof(ElfW(Shdr)) * shnum); + fseek(fp, f->header.e_shoff, SEEK_SET); |