From: Amos Jeffries Date: Fri, 5 Aug 2016 22:00:51 +0000 (+1200) Subject: Cleanup: remove some minor memory leaks on config parser self_destruct X-Git-Tag: SQUID_4_0_14~54 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fe41e23f95350953efd7144ebada32fe6c04c3d8;p=thirdparty%2Fsquid.git Cleanup: remove some minor memory leaks on config parser self_destruct Identified by Coverity Scan. ID 1364742, 1364744. --- diff --git a/src/acl/Ip.cc b/src/acl/Ip.cc index 370e50a776..153bcc6b1e 100644 --- a/src/acl/Ip.cc +++ b/src/acl/Ip.cc @@ -373,9 +373,9 @@ acl_ip_data::FactoryParse(const char *t) int errcode = getaddrinfo(addr1,NULL,&hints,&hp); if (hp == NULL) { + delete q; if (strcmp(addr1, "::1") == 0) { debugs(28, DBG_IMPORTANT, "aclIpParseIpData: IPv6 has not been enabled in host DNS resolver."); - delete q; } else { debugs(28, DBG_CRITICAL, "aclIpParseIpData: Bad host/IP: '" << addr1 << "' in '" << t << "', flags=" << hints.ai_flags << @@ -413,14 +413,14 @@ acl_ip_data::FactoryParse(const char *t) debugs(28, 3, "" << addr1 << " --> " << r->addr1 ); } + freeaddrinfo(hp); + if (*Q != NULL) { debugs(28, DBG_CRITICAL, "aclIpParseIpData: Bad host/IP: '" << t << "'"); self_destruct(); return NULL; } - freeaddrinfo(hp); - return q; }