summaryrefslogtreecommitdiff
path: root/package/busybox/busybox-1.13.0-modprobe.patch
blob: ecbd26c32799aa675e49d92d3822603d05b07546 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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);