[package] busybox: update to v1.14.4 (closes: #5619)
[openwrt-10.03/.git] / package / busybox / patches / 410-httpd_cgi_headers.patch
index 98f094ee580a83e26bd5f2c0a1456dde94e26bcd..2f464608f1b0311f0a23c1d69518dc317684692a 100644 (file)
@@ -1,26 +1,16 @@
-Index: busybox-1.4.2/networking/httpd.c
-===================================================================
---- busybox-1.4.2.orig/networking/httpd.c      2007-06-04 13:21:35.006654848 +0200
-+++ busybox-1.4.2/networking/httpd.c   2007-06-04 13:21:35.585566840 +0200
-@@ -1231,7 +1231,7 @@
-                                * "chopped up into small chunks" syndrome here */
-                               rbuf[count] = '\0';
-                               /* check to see if the user script added headers */
--#define HTTP_200 "HTTP/1.0 200 OK\r\n\r\n"
-+#define HTTP_200 "HTTP/1.0 200 OK\r\n"
-                               if (memcmp(rbuf, HTTP_200, 4) != 0) {
-                                       /* there is no "HTTP", do it ourself */
-                                       full_write(s, HTTP_200, sizeof(HTTP_200)-1);
-@@ -1242,9 +1242,9 @@
-                                * echo -en "Location: http://www.busybox.net\r\n"
-                                * echo -en "\r\n"
-                                */
--                              //if (!strstr(rbuf, "ontent-")) {
--                              //      full_write(s, "Content-type: text/plain\r\n\r\n", 28);
--                              //}
-+                              if (!strstr(rbuf, "ontent-")) {
-+                                      full_write(s, "Content-type: text/plain\r\n\r\n", 28);
-+                              }
-                               firstLine = 0;
-                       }
-                       if (full_write(s, rbuf, count) != count)
+--- a/networking/httpd.c
++++ b/networking/httpd.c
+@@ -1250,10 +1250,10 @@ static NOINLINE void cgi_io_loop_and_exi
+                                               if (full_write(STDOUT_FILENO, HTTP_200, sizeof(HTTP_200)-1) != sizeof(HTTP_200)-1)
+                                                       break;
+                                       }
+-                                      /* Commented out:
+-                                      if (!strstr(rbuf, "ontent-")) {
+-                                              full_write(s, "Content-type: text/plain\r\n\r\n", 28);
++                                      if (!strstr(rbuf, "ontent-") && !strstr(rbuf, "ocation:")) {
++                                              full_write(1, "Content-type: text/plain\r\n\r\n", 28);
+                                       }
++                                      /* Previously commented out:
+                                        * Counter-example of valid CGI without Content-type:
+                                        * echo -en "HTTP/1.0 302 Found\r\n"
+                                        * echo -en "Location: http://www.busybox.net\r\n"