From: Amos Jeffries Date: Sun, 18 May 2014 10:36:05 +0000 (-0700) Subject: Fix infinite parse loop on partial request reads X-Git-Tag: merge-candidate-3-v1~506^2~43 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f9834e8553b5b0a55c72e1cdd1c5f319d4e8a90f;p=thirdparty%2Fsquid.git Fix infinite parse loop on partial request reads parseHttpRequest() returns NULL on incomplete parse. This case was not exiting the loop to parse multiple requests. As a result traffic would only receive a response if the request headers were received entirely within one read(2) event. Pipelined requests received over multiple hung. --- diff --git a/src/client_side.cc b/src/client_side.cc index 5fc5d9c68b..692d61841c 100644 --- a/src/client_side.cc +++ b/src/client_side.cc @@ -2856,6 +2856,8 @@ ConnStateData::clientParseRequests() break; } } + else // incomplete parse, wait for more data + break; } /* XXX where to 'finish' the parsing pass? */