Hello,
to reproduce this bug try to run this commands :
{ echo -ne "HTTP/1.1 200 OK\r\nVary: *\r\n\r\n"; while [ 1 ]; do echo -n
'a'; done } | nc -l 80
and then connect to http://localhost using squid.
I believe that following patch should solve the problem :
--- squid-3.0.STABLE21/src/http.cc 2009-12-22 07:50:33.000000000 +0100
+++ squid-3.0.STABLE23/src/http.cc 2010-02-02 10:50:02.000000000 +0100
@@ -799,8 +799,9 @@ HttpStateData::haveParsedReplyHeaders()
if (!vary) {
entry->makePrivate();
+ if (!fwd->reforwardableStatus(rep->sline.status))
+ EBIT_CLR(entry->flags, ENTRY_FWD_HDR_WAIT);
goto no_cache;
-
}
entry->mem_obj->vary_headers = xstrdup(vary);
Regards