From: Miek Gieben Date: Thu, 9 Jun 2005 12:40:11 +0000 (+0000) Subject: valgrind memory fixes X-Git-Tag: release-0.65~18 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1773f4e24fc88d587005e56ba7a9fa1b2e7fe563;p=thirdparty%2Fldns.git valgrind memory fixes --- diff --git a/net.c b/net.c index 28c65405..812a7b69 100644 --- a/net.c +++ b/net.c @@ -95,6 +95,7 @@ ldns_send(ldns_pkt **result, ldns_resolver *r, ldns_pkt *query_pkt) (ns->ss_family == AF_INET6 && ldns_resolver_ip6(r) == LDNS_RESOLV_INET)) { /* mismatch, next please */ + LDNS_FREE(ns); continue; } @@ -124,6 +125,7 @@ ldns_send(ldns_pkt **result, ldns_resolver *r, ldns_pkt *query_pkt) /* obey the fail directive */ if (!reply_bytes) { if (ldns_resolver_fail(r)) { + LDNS_FREE(ns); return LDNS_STATUS_ERR; } else { continue; @@ -133,6 +135,7 @@ ldns_send(ldns_pkt **result, ldns_resolver *r, ldns_pkt *query_pkt) if (ldns_wire2pkt(&reply, reply_bytes, reply_size) != LDNS_STATUS_OK) { LDNS_FREE(reply_bytes); + LDNS_FREE(ns); return LDNS_STATUS_ERR; } diff --git a/resolver.c b/resolver.c index 9b05eecf..e251346a 100644 --- a/resolver.c +++ b/resolver.c @@ -507,6 +507,8 @@ ldns_resolver_new_frm_fp(FILE *fp) expect = LDNS_RESOLV_KEYWORD; break; } + + /* don't free, because we copy the pointer */ ldns_resolver_set_domain(r, tmp); expect = LDNS_RESOLV_KEYWORD; break; @@ -521,7 +523,9 @@ ldns_resolver_new_frm_fp(FILE *fp) expect = LDNS_RESOLV_KEYWORD; break; } + /* XXX */ (void)ldns_resolver_push_nameserver(r, tmp); + ldns_rdf_deep_free(tmp); expect = LDNS_RESOLV_KEYWORD; break; default: @@ -578,6 +582,13 @@ ldns_resolver_deep_free(ldns_resolver *res) } LDNS_FREE(res->_searchlist); LDNS_FREE(res->_nameservers); + if (ldns_resolver_domain(res)) { + LDNS_FREE(res->_domain); + } + if (ldns_resolver_tsig_keyname(res)) { + LDNS_FREE(res->_tsig_keyname); + } + LDNS_FREE(res); } }