From: Amos Jeffries Date: Mon, 8 Aug 2016 23:34:31 +0000 (+1200) Subject: Cleanup: fix minor memory leak in squid.conf parsing X-Git-Tag: SQUID_4_0_14~47 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2fec641d53c6d64b15c43aed4eedf08740062fe9;p=thirdparty%2Fsquid.git Cleanup: fix minor memory leak in squid.conf parsing Detected by Coverity Scan. Issue 1154224 --- diff --git a/src/log/Config.cc b/src/log/Config.cc index 894982db49..a60c4bfdd8 100644 --- a/src/log/Config.cc +++ b/src/log/Config.cc @@ -19,13 +19,15 @@ Log::LogConfig::parseFormats() { char *name, *def; - if ((name = ConfigParser::NextToken()) == NULL) + if (!(name = ConfigParser::NextToken())) { self_destruct(); + } ::Format::Format *nlf = new ::Format::Format(name); ConfigParser::EnableMacros(); - if ((def = ConfigParser::NextQuotedOrToEol()) == NULL) { + if (!(def = ConfigParser::NextQuotedOrToEol())) { + delete nlf; self_destruct(); return; } @@ -34,6 +36,7 @@ Log::LogConfig::parseFormats() debugs(3, 2, "Log Format for '" << name << "' is '" << def << "'"); if (!nlf->parse(def)) { + delete nlf; self_destruct(); return; }