From: Mark Andrews Date: Wed, 29 Jan 2014 20:54:52 +0000 (+1100) Subject: 3719. [bug] Address memory leak in in peer.c. [RT #35255] X-Git-Tag: v9.10.0a2~27 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=75d747e1c5a30d6ef6c6238c6e27baa11d6f3bf6;p=thirdparty%2Fbind9.git 3719. [bug] Address memory leak in in peer.c. [RT #35255] --- diff --git a/CHANGES b/CHANGES index cdc454756bd..db812b5db34 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,5 @@ +3719. [bug] Address memory leak in in peer.c. [RT #35255] + 3718. [bug] A missing ISC_LINK_INIT in log.c. [RT #35260] 3717. [port] hpux: Treat EOPNOTSUPP as a expected error code when diff --git a/bin/tests/system/resolver/ns1/named.conf b/bin/tests/system/resolver/ns1/named.conf index 95d233e8c67..ff6a522b9e4 100644 --- a/bin/tests/system/resolver/ns1/named.conf +++ b/bin/tests/system/resolver/ns1/named.conf @@ -37,6 +37,18 @@ options { allow-query {!10.53.0.8; any; }; }; +server 10.42.23.3/32 { + notify-source 10.42.22.1; + query-source address 10.42.22.1 port 0; + transfer-source 10.42.22.1; +}; + +server fd92:7065:b8e:ffff::1000 { + notify-source-v6 fd92:7065:b8e:ffff::1001; + query-source-v6 address fd92:7065:b8e:ffff::1001 port 0; + transfer-source-v6 fd92:7065:b8e:ffff::1001; +}; + zone "." { type hint; file "root.hint"; diff --git a/lib/dns/peer.c b/lib/dns/peer.c index ce4770087ac..6431b02364f 100644 --- a/lib/dns/peer.c +++ b/lib/dns/peer.c @@ -300,10 +300,15 @@ peer_delete(dns_peer_t **peer) { isc_mem_put(mem, p->key, sizeof(dns_name_t)); } - if (p->transfer_source != NULL) { + if (p->query_source != NULL) + isc_mem_put(mem, p->query_source, sizeof(*p->query_source)); + + if (p->notify_source != NULL) + isc_mem_put(mem, p->notify_source, sizeof(*p->notify_source)); + + if (p->transfer_source != NULL) isc_mem_put(mem, p->transfer_source, sizeof(*p->transfer_source)); - } isc_mem_put(mem, p, sizeof(*p));