From: Amos Jeffries Date: Tue, 25 Jan 2011 02:18:38 +0000 (-0700) Subject: Author: Martin Huter X-Git-Tag: take03^2~67 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=56203c6740b9e0b846a1a4842e65caa75227e86e;p=thirdparty%2Fsquid.git Author: Martin Huter Bug 3140: memory leak in error page generation --- diff --git a/src/errorpage.cc b/src/errorpage.cc index be36b40940..ee6fbc0bce 100644 --- a/src/errorpage.cc +++ b/src/errorpage.cc @@ -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); }