X-Git-Url: http://git.ozo.com/?p=openwrt-10.03%2F.git;a=blobdiff_plain;f=package%2Fbusybox%2Fpatches%2F410-httpd_cgi_headers.patch;h=af2dc0c283841ee5c43cc63af08924ce05e95d5c;hp=1a55d8ab65005091cc959281943405460d3cf8ce;hb=276e0d8c6e2d7fd3e2b97cc09863be49708f1152;hpb=4a780ed37c8d3b42e250a8529f6bb05f5a61fd86 diff --git a/package/busybox/patches/410-httpd_cgi_headers.patch b/package/busybox/patches/410-httpd_cgi_headers.patch index 1a55d8ab6..af2dc0c28 100644 --- a/package/busybox/patches/410-httpd_cgi_headers.patch +++ b/package/busybox/patches/410-httpd_cgi_headers.patch @@ -1,11 +1,16 @@ ---- busybox.old/networking/httpd.c 2007-01-19 22:22:59.000000000 +0100 -+++ busybox.dev/networking/httpd.c 2007-02-01 17:00:56.000000000 +0100 -@@ -1224,7 +1224,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); +--- a/networking/httpd.c ++++ b/networking/httpd.c +@@ -1178,10 +1178,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"