From: serassio <> Date: Tue, 6 Jun 2006 00:35:02 +0000 (+0000) Subject: Bug #1559: asnAddNet() might leak memory X-Git-Tag: SQUID_3_0_PRE4~44 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0c3704935d4ee1e8fa3212fcee0a3a2751a36829;p=thirdparty%2Fsquid.git Bug #1559: asnAddNet() might leak memory Forward port of 2.6 patch. --- diff --git a/src/asn.cc b/src/asn.cc index eff7653555..3c78859972 100644 --- a/src/asn.cc +++ b/src/asn.cc @@ -1,6 +1,6 @@ /* - * $Id: asn.cc,v 1.108 2006/05/29 00:15:01 robertc Exp $ + * $Id: asn.cc,v 1.109 2006/06/05 18:35:02 serassio Exp $ * * DEBUG: section 53 AS Number handling * AUTHOR: Duane Wessels, Kostas Anagnostakis @@ -395,7 +395,7 @@ asStateFree(void *data) static int asnAddNet(char *as_string, int as_number) { - rtentry_t *e = (rtentry_t *)xmalloc(sizeof(rtentry_t)); + rtentry_t *e; struct squid_radix_node *rn; char dbg1[32], dbg2[32]; @@ -440,6 +440,8 @@ asnAddNet(char *as_string, int as_number) /*mask = ntohl(mask); */ debug(53, 3) ("asnAddNet: called for %s/%s\n", dbg1, dbg2); + e = (rtentry_t *)xmalloc(sizeof(rtentry_t)); + memset(e, '\0', sizeof(rtentry_t)); store_m_int(addr, e->e_addr); @@ -476,7 +478,9 @@ asnAddNet(char *as_string, int as_number) e->e_info = asinfo; } - if (rn == 0) { + if (rn == 0) { /* assert might expand to nothing */ + xfree(asinfo); + delete q; xfree(e); debug(53, 3) ("asnAddNet: Could not add entry.\n"); return 0;