busybox: additional 1.9.1 patches
authorPeter Korsgaard <jacmet@sunsite.dk>
Mon, 17 Mar 2008 19:44:43 +0000 (19:44 -0000)
committerPeter Korsgaard <jacmet@sunsite.dk>
Mon, 17 Mar 2008 19:44:43 +0000 (19:44 -0000)
package/busybox/busybox-1.9.1-httpd-POST.patch [new file with mode: 0644]
package/busybox/busybox-1.9.1-init.patch [new file with mode: 0644]

diff --git a/package/busybox/busybox-1.9.1-httpd-POST.patch b/package/busybox/busybox-1.9.1-httpd-POST.patch
new file mode 100644 (file)
index 0000000..6a70c82
--- /dev/null
@@ -0,0 +1,11 @@
+--- busybox-1.9.1/networking/httpd.c   Tue Feb 12 17:03:01 2008
++++ busybox-1.9.1-httpd-POST/networking/httpd.c        Mon Mar 17 13:58:09 2008
+@@ -1950,7 +1950,7 @@
+                       if ((STRNCASECMP(iobuf, "Content-length:") == 0)) {
+                               /* extra read only for POST */
+                               if (prequest != request_GET) {
+-                                      tptr = iobuf + sizeof("Content-length:") - 1;
++                                      tptr = tptr = skip_whitespace(iobuf + sizeof("Content-length:") - 1);
+                                       if (!tptr[0])
+                                               send_headers_and_exit(HTTP_BAD_REQUEST);
+                                       errno = 0;
diff --git a/package/busybox/busybox-1.9.1-init.patch b/package/busybox/busybox-1.9.1-init.patch
new file mode 100644 (file)
index 0000000..be86cbe
--- /dev/null
@@ -0,0 +1,27 @@
+--- busybox-1.9.1/init/init.c  Tue Feb 12 17:03:12 2008
++++ busybox-1.9.1-init/init/init.c     Mon Mar 17 14:19:41 2008
+@@ -225,8 +225,22 @@
+               }
+               messageD(L_LOG, "console='%s'", s);
+       } else {
+-              /* Make sure fd 0,1,2 are not closed */
+-              bb_sanitize_stdio();
++              /* Make sure fd 0,1,2 are not closed
++               * (so that they won't be used by future opens) */
++
++              /* bb_sanitize_stdio(); - WRONG.
++               * Fail if "/dev/null" doesnt exist, and for init
++               * this is a real possibility! Open code it instead. */
++
++              int fd = open(bb_dev_null, O_RDWR);
++              if (fd < 0) {
++                      /* Give me _ANY_ open descriptor! */
++                      fd = xopen("/", O_RDONLY); /* we don't believe this can fail */
++              }
++              while ((unsigned)fd < 2)
++                      fd = dup(fd);
++              if (fd > 2)
++                      close (fd);
+       }
+       s = getenv("TERM");