]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
do not bypass hdrCacheInit() when there are no mime headers
authorAlex Rousskov <rousskov@measurement-factory.com>
Wed, 30 Sep 2015 03:24:39 +0000 (20:24 -0700)
committerAmos Jeffries <squid3@treenet.co.nz>
Wed, 30 Sep 2015 03:24:39 +0000 (20:24 -0700)
src/HttpMsg.cc

index b386244f2830913c5ac4a00b1875890feac5d600..d2aa351e219b7c8632be736b3438f3c5ac52e1db 100644 (file)
@@ -287,20 +287,15 @@ HttpMsg::parseHeader(Http1::Parser &hp)
 {
     // HTTP/1 message contains "zero or more header fields"
     // zero does not need parsing
-    if (!hp.headerBlockSize()) {
-        pstate = psParsed;
-        return true;
-    }
-
     // XXX: c_str() reallocates. performance regression.
-    if (header.parse(hp.mimeHeader().c_str(), hp.headerBlockSize())) {
-        pstate = psParsed;
-        hdrCacheInit();
-        return true;
+    if (hp.headerBlockSize() && !header.parse(hp.mimeHeader().c_str(), hp.headerBlockSize())) {
+        pstate = psError;
+        return false;
     }
 
-    pstate = psError;
-    return false;
+    pstate = psParsed;
+    hdrCacheInit();
+    return true;
 }
 
 /* handy: resets and returns -1 */