aboutsummaryrefslogtreecommitdiffstats
path: root/main/squid/squid-3.5-13990-CVE-2016-2571.patch
blob: 675928c6ea74c775568daf67e359297524609b43 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
patch was modified for applying to squid-3.4.14
------------------------------------------------------------
revno: 13990
revision-id: rousskov@measurement-factory.com-20160218041533-8tmtd45c3nky2gyy
parent: squid3@treenet.co.nz-20160215135848-ms0dmjsfouxcb8g2
committer: Alex Rousskov <rousskov@measurement-factory.com>
branch nick: 3.5
timestamp: Wed 2016-02-17 21:15:33 -0700
message:
  Better handling of huge response headers. Fewer "BUG 3279" messages.
  
  When we failed to parse a response, do not store the fake half-baked
  response (via a replaceHttpReply() call). Doing so leads to misleading
  "BUG 3279: HTTP reply without Date" messages (at best).  The fake
  response is only meant for continueAfterParsingHeader().
  
  Also removed a misleading XXX that may have caused Bug 4432 in v4.0
  (trunk r14548).
------------------------------------------------------------
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: rousskov@measurement-factory.com-20160218041533-\
#   8tmtd45c3nky2gyy
# target_branch: http://bzr.squid-cache.org/bzr/squid3/3.5
# testament_sha1: 0a7978c0442191d33a9472c6185692a78da6c0b0
# timestamp: 2016-02-18 04:50:56 +0000
# source_branch: http://bzr.squid-cache.org/bzr/squid3/3.5
# base_revision_id: squid3@treenet.co.nz-20160215135848-\
#   ms0dmjsfouxcb8g2
# 
# Begin patch
=== modified file 'src/http.cc'
--- a/src/http.cc
+++ b/src/http.cc
@@ -719,11 +719,8 @@
         if (!parsed && error > 0) { // unrecoverable parsing error
             debugs(11, 3, "processReplyHeader: Non-HTTP-compliant header: '" <<  readBuf->content() << "'");
             flags.headers_parsed = true;
-            // XXX: when sanityCheck is gone and Http::StatusLine is used to parse,
-            //   the sline should be already set the appropriate values during that parser stage
             newrep->sline.set(Http::ProtocolVersion(1,1), error);
-            HttpReply *vrep = setVirginReply(newrep);
-            entry->replaceHttpReply(vrep);
+            setVirginReply(newrep);
             ctx_exit(ctx);
             return;
         }