busybox: add 1.18.2 modprobe fix
authorGustavo Zacarias <gustavo@zacarias.com.ar>
Thu, 3 Feb 2011 20:45:56 +0000 (17:45 -0300)
committerPeter Korsgaard <jacmet@sunsite.dk>
Fri, 4 Feb 2011 18:49:33 +0000 (19:49 +0100)
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
package/busybox/busybox-1.18.2/busybox-1.18.2-modprobe.patch [new file with mode: 0644]

diff --git a/package/busybox/busybox-1.18.2/busybox-1.18.2-modprobe.patch b/package/busybox/busybox-1.18.2/busybox-1.18.2-modprobe.patch
new file mode 100644 (file)
index 0000000..cad887e
--- /dev/null
@@ -0,0 +1,20 @@
+--- busybox-1.18.2/modutils/modutils.c
++++ busybox-1.18.2-modprobe/modutils/modutils.c
+@@ -71,12 +71,11 @@ char* FAST_FUNC parse_cmdline_module_opt
+       optlen = 0;
+       while (*++argv) {
+               options = xrealloc(options, optlen + 2 + strlen(*argv) + 2);
+-              /* Older versions were enclosing space-containing *argv in "",
+-               * but both modprobe and insmod from module-init-tools 3.11.1
+-               * don't do this anymore. (As to extra trailing space,
+-               * insmod adds it but modprobe does not. We do in both cases)
+-               */
+-              optlen += sprintf(options + optlen, "%s ", *argv);
++              /* Spaces handled by "" pairs, but no way of escaping quotes */
++//TODO: module-init-tools version 3.11.1 quotes only value:
++//it generates var="val with spaces", not "var=val with spaces"
++//(and it won't quote var *name* even if it has spaces)
++              optlen += sprintf(options + optlen, (strchr(*argv, ' ') ? "\"%s\" " : "%s "), *argv);
+       }
+       return options;
+ }