summaryrefslogtreecommitdiff
path: root/package/busybox/busybox-1.13.0-modprobe.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/busybox/busybox-1.13.0-modprobe.patch')
-rw-r--r--package/busybox/busybox-1.13.0-modprobe.patch47
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);