From 4a4575686eca96e7d393ba5c08ae3549bed2c1f0 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Sun, 14 Oct 2007 02:34:20 +0000 Subject: [PATCH] httpd: fix bug where we were trying to read more POSTDATA than content-length --- networking/httpd.c | 11 +++++++++++ 1 file changed, 11 insertions(+) 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) {