From: Denis Vlasenko Date: Sun, 14 Oct 2007 02:34:20 +0000 (-0000) Subject: httpd: fix bug where we were trying to read more POSTDATA than content-length X-Git-Tag: 1_8_0~53 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=4a4575686eca96e7d393ba5c08ae3549bed2c1f0;p=oweals%2Fbusybox.git httpd: fix bug where we were trying to read more POSTDATA than content-length --- diff --git a/networking/httpd.c b/networking/httpd.c index 61185025c..82755a08a 100644 --- a/networking/httpd.c +++ b/networking/httpd.c @@ -1051,6 +1051,17 @@ static NOINLINE void cgi_io_loop_and_exit(int fromCgi_rd, int toCgi_wr, int post * and send it to the peer. So please no SIGPIPEs! */ signal(SIGPIPE, SIG_IGN); + // We inconsistently handle a case when more POSTDATA from network + // is coming than we expected. We may give *some part* of that + // extra data to CGI. + + //if (hdr_cnt > post_len) { + // /* We got more POSTDATA from network than we expected */ + // hdr_cnt = post_len; + //} + post_len -= hdr_cnt; + /* post_len - number of POST bytes not yet read from network */ + /* NB: breaking out of this loop jumps to log_and_exit() */ out_cnt = 0; while (1) {