]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Author: Stefan Fritsch <sf@sfritsch.de>
authorAlex Rousskov <rousskov@measurement-factory.com>
Mon, 20 Sep 2010 19:00:02 +0000 (13:00 -0600)
committerAlex Rousskov <rousskov@measurement-factory.com>
Mon, 20 Sep 2010 19:00:02 +0000 (13:00 -0600)
Bug #3058 fix: 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 7e80a965ec205661eb0bd659968fbb9fb1083e6b..bcc3e2e966167eb213ab7e395c6eb53ae6a80eb6 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 597ad6c4f61cfc9cb0e91d240586632393a48277..6f613729a9163108ea21af471223020a4f350747 100644 (file)
@@ -680,6 +680,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