]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
valgrind memory fixes
authorMiek Gieben <miekg@NLnetLabs.nl>
Thu, 9 Jun 2005 12:40:11 +0000 (12:40 +0000)
committerMiek Gieben <miekg@NLnetLabs.nl>
Thu, 9 Jun 2005 12:40:11 +0000 (12:40 +0000)
net.c
resolver.c

diff --git a/net.c b/net.c
index 28c65405f5acbb55987c456c9acc4cc99132687c..812a7b695cb0499995384776ebf569af035eb687 100644 (file)
--- 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;
                }
                
index 9b05eecfa1871f3ba8e50710c25243fe5a11cf0a..e251346a45b2490ee08a2681ee3f0bc24c087c99 100644 (file)
@@ -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);
        }
 }