]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
bugfix #448: Copy nameserver value (in stead of reference) of the answering nameserve...
authorWillem Toorop <willem@NLnetLabs.nl>
Tue, 22 May 2012 09:10:56 +0000 (09:10 +0000)
committerWillem Toorop <willem@NLnetLabs.nl>
Tue, 22 May 2012 09:10:56 +0000 (09:10 +0000)
Thanks Michael Meisel.

Changelog
net.c

index 244bc76aecb6d04476d50a84ed292bd77bb1b591..9394fa5b5b5b51ebfa0e18ea15568038bfb5af48 100644 (file)
--- a/Changelog
+++ b/Changelog
@@ -1,4 +1,8 @@
 1.6.14
+       * bugfix #448: Copy nameserver value (in stead of reference) of the
+         answering nameserver to the answer packet in ldns_send_buffer, so
+         the original value may be deep freed with the ldns_resolver struct.
+         Thanks Michael Meisel.
 
 1.6.13 2012-05-21
        * New -S option for ldns-verify-zone to chase signatures online.
diff --git a/net.c b/net.c
index 870511a75b2df064c49a24d4353e4ee2d4dfafa0..27debff401f028ec600535aa8082222dd91fc8de 100644 (file)
--- a/net.c
+++ b/net.c
@@ -182,7 +182,8 @@ ldns_send_buffer(ldns_pkt **result, ldns_resolver *r, ldns_buffer *qb, ldns_rdf
                        ldns_pkt_set_querytime(reply, (uint32_t)
                                ((tv_e.tv_sec - tv_s.tv_sec) * 1000) +
                                (tv_e.tv_usec - tv_s.tv_usec) / 1000);
-                       ldns_pkt_set_answerfrom(reply, ns_array[i]);
+                       ldns_pkt_set_answerfrom(reply,
+                                       ldns_rdf_clone(ns_array[i]));
                        ldns_pkt_set_timestamp(reply, tv_s);
                        ldns_pkt_set_size(reply, reply_size);
                        break;