]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
Fix memory leak in ldns_pkt_rr_list_by_name()
authorJohannes Naab <naab@net.in.tum.de>
Thu, 4 Sep 2014 17:49:36 +0000 (19:49 +0200)
committerWillem Toorop <willem@nlnetlabs.nl>
Fri, 5 Sep 2014 09:13:59 +0000 (11:13 +0200)
The intermediate copy for section selection wasn't freed.

packet.c

index 7c42783163fb5840ae7ebd5de90a593ea9a05da8..54594ddeb4ddd6340214b2b67756300ea1cceadb 100644 (file)
--- a/packet.c
+++ b/packet.c
@@ -273,9 +273,15 @@ ldns_pkt_rr_list_by_name(ldns_pkt *packet,
                        if (ret == NULL) {
                                ret = ldns_rr_list_new();
                        }
-                       ldns_rr_list_push_rr(ret, ldns_rr_list_rr(rrs, i));
+                       ldns_rr_list_push_rr(ret,
+                                            ldns_rr_clone(
+                                               ldns_rr_list_rr(rrs, i))
+                                           );
                }
        }
+
+       ldns_rr_list_deep_free(rrs);
+
        return ret;
 }