]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Author: Martin Huter <mhuter@barracuda.com>
authorAmos Jeffries <squid3@treenet.co.nz>
Tue, 25 Jan 2011 02:18:38 +0000 (19:18 -0700)
committerAmos Jeffries <squid3@treenet.co.nz>
Tue, 25 Jan 2011 02:18:38 +0000 (19:18 -0700)
Bug 3140: memory leak in error page generation

src/errorpage.cc

index be36b40940de2e1f0817d8f89f62dff9ed0e96e8..ee6fbc0bcea44741bd57b228f9b48505dd4a243f 100644 (file)
@@ -1057,6 +1057,7 @@ ErrorState::BuildContent()
     String hdr;
     char dir[256];
     int l = 0;
+    const char *freePage = NULL;
 
     /** error_directory option in squid.conf overrides translations.
      * Custom errors are always found either in error_directory or the templates directory.
@@ -1130,6 +1131,7 @@ ErrorState::BuildContent()
                 if (m) {
                     /* store the language we found for the Content-Language reply header */
                     err_language = xstrdup(reset);
+                    freePage = m;
                     break;
                 } else if (Config.errorLogMissingLanguages) {
                     debugs(4, DBG_IMPORTANT, "WARNING: Error Pages Missing Language: " << reset);
@@ -1166,6 +1168,8 @@ ErrorState::BuildContent()
         debugs(4, 2, HERE << "No existing error page language negotiated for " << errorPageName(page_id) << ". Using default error file.");
     }
 
+    safe_free(freePage);
+
     return ConvertText(m, true);
 }