add some more busybox patches from upstream
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 12 Feb 2007 22:34:54 +0000 (22:34 +0000)
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 12 Feb 2007 22:34:54 +0000 (22:34 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@6290 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/busybox/patches/150-wget_segv_fix.patch [new file with mode: 0644]
package/busybox/patches/160-iproute_fixes.patch [new file with mode: 0644]

diff --git a/package/busybox/patches/150-wget_segv_fix.patch b/package/busybox/patches/150-wget_segv_fix.patch
new file mode 100644 (file)
index 0000000..8375cc7
--- /dev/null
@@ -0,0 +1,14 @@
+diff -urN busybox-1.4.1/networking/wget.c busybox-1.4.1-wgetSEGV/networking/wget.c
+--- busybox-1.4.1/networking/wget.c    2007-01-24 22:34:34.000000000 +0100
++++ busybox-1.4.1-wgetSEGV/networking/wget.c   2007-02-11 17:21:18.000000000 +0100
+@@ -543,7 +543,9 @@
+       p = strchr(h->host, '?'); if (!sp || (p && sp > p)) sp = p;
+       p = strchr(h->host, '#'); if (!sp || (p && sp > p)) sp = p;
+       if (!sp) {
+-              h->path = "";
++              /* must be writable because of bb_get_last_path_component() */
++              static char nullstr[] = "";
++              h->path = nullstr;
+       } else if (*sp == '/') {
+               *sp = '\0';
+               h->path = sp + 1;
diff --git a/package/busybox/patches/160-iproute_fixes.patch b/package/busybox/patches/160-iproute_fixes.patch
new file mode 100644 (file)
index 0000000..19ab74b
--- /dev/null
@@ -0,0 +1,71 @@
+diff -urN busybox-1.4.1/networking/ip.c busybox-1.4.1-iproute/networking/ip.c
+--- busybox-1.4.1/networking/ip.c      2007-01-24 22:34:34.000000000 +0100
++++ busybox-1.4.1-iproute/networking/ip.c      2007-01-27 14:07:05.000000000 +0100
+@@ -33,8 +33,9 @@
+               if (ENABLE_FEATURE_IP_LINK && matches(argv[1], "link") == 0) {
+                       ret = do_iplink(argc-2, argv+2);
+               }
+-              if (ENABLE_FEATURE_IP_TUNNEL &&
+-                      (matches(argv[1], "tunnel") == 0 || strcmp(argv[1], "tunl") == 0)) {
++              if (ENABLE_FEATURE_IP_TUNNEL
++               && (matches(argv[1], "tunnel") == 0 || strcmp(argv[1], "tunl") == 0)
++              ) {
+                       ret = do_iptunnel(argc-2, argv+2);
+               }
+               if (ENABLE_FEATURE_IP_RULE && matches(argv[1], "rule") == 0) {
+diff -urN busybox-1.4.1/networking/libiproute/iproute.c busybox-1.4.1-iproute/networking/libiproute/iproute.c
+--- busybox-1.4.1/networking/libiproute/iproute.c      2007-01-24 22:34:33.000000000 +0100
++++ busybox-1.4.1-iproute/networking/libiproute/iproute.c      2007-01-27 14:07:05.000000000 +0100
+@@ -835,9 +835,11 @@
+ int do_iproute(int argc, char **argv)
+ {
+-      static const char * const ip_route_commands[] =
+-              { "add", "append", "change", "chg", "delete", "get",
+-              "list", "show", "prepend", "replace", "test", "flush", 0 };
++      static const char * const ip_route_commands[] = {
++      /*0-3*/ "add", "append", "change", "chg",
++      /*4-7*/ "delete", "get", "list", "show",
++      /*8..*/ "prepend", "replace", "test", "flush", 0
++      };
+       int command_num = 6;
+       unsigned int flags = 0;
+       int cmd = RTM_NEWROUTE;
+@@ -848,7 +850,7 @@
+               command_num = index_in_substr_array(ip_route_commands, *argv);
+       }
+       switch (command_num) {
+-              case 0: /* add*/
++              case 0: /* add */
+                       flags = NLM_F_CREATE|NLM_F_EXCL;
+                       break;
+               case 1: /* append */
+@@ -859,21 +861,20 @@
+                       flags = NLM_F_REPLACE;
+                       break;
+               case 4: /* delete */
+-              case 5: /* del */
+                       cmd = RTM_DELROUTE;
+                       break;
+-              case 6: /* get */
++              case 5: /* get */
+                       return iproute_get(argc-1, argv+1);
+-              case 7: /* list */
+-              case 8: /* show */
++              case 6: /* list */
++              case 7: /* show */
+                       return iproute_list_or_flush(argc-1, argv+1, 0);
+-              case 9: /* prepend */
++              case 8: /* prepend */
+                       flags = NLM_F_CREATE;
+-              case 10: /* replace */
++              case 9: /* replace */
+                       flags = NLM_F_CREATE|NLM_F_REPLACE;
+-              case 11: /* test */
++              case 10: /* test */
+                       flags = NLM_F_EXCL;
+-              case 12: /* flush */
++              case 11: /* flush */
+                       return iproute_list_or_flush(argc-1, argv+1, 1);
+               default:
+                       bb_error_msg_and_die("unknown command %s", *argv);