]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Author: Stefan Fritsch <sf@sfritsch.de>
authorAmos Jeffries <amosjeffries@squid-cache.org>
Thu, 30 Sep 2010 04:38:54 +0000 (22:38 -0600)
committerAmos Jeffries <amosjeffries@squid-cache.org>
Thu, 30 Sep 2010 04:38:54 +0000 (22:38 -0600)
Bug 3058: errorSend and ICY leak MemBuf object.

HttpReply::pack() returns a MemBuf pointer that must be deleted. Fixed leaking
errorSend() function in errorpage.cc and ICY parsing hack in
HttpStateData::processReplyHeader().

src/errorpage.cc
src/http.cc

index 08bf0ae14e4bcf44cd168379d5144abda9304366..49908ce02a0b45ab7fd64cdb23870f760552163a 100644 (file)
@@ -457,7 +457,9 @@ errorSend(int fd, ErrorState * err)
 
     rep = err->BuildHttpReply();
 
-    comm_write_mbuf(fd, rep->pack(), errorSendComplete, err);
+    MemBuf *mb = rep->pack();
+    comm_write_mbuf(fd, mb, errorSendComplete, err);
+    delete mb;
 
     delete rep;
 }
index 7956a8ab6cf7351998082186deedc2bd164db9e2..89542c87fc6997134acf64d9830db700ef84eaea 100644 (file)
@@ -681,6 +681,7 @@ HttpStateData::processReplyHeader()
         tmprep->header.putExt("X-Transformed-From", "HTTP/0.9");
         mb = tmprep->pack();
         newrep->parse(mb, eof, &error);
+        delete mb;
         delete tmprep;
     } else {
         if (!parsed && error > 0) { // unrecoverable parsing error