]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
4813. [bug] Address potential read after free errors from
authorMark Andrews <marka@isc.org>
Fri, 10 Nov 2017 02:33:18 +0000 (13:33 +1100)
committerMark Andrews <marka@isc.org>
Fri, 10 Nov 2017 02:33:18 +0000 (13:33 +1100)
                        query_synthnodata, query_synthwildcard and
                        query_synthnxdomain. [RT #46547]

CHANGES
lib/ns/query.c

diff --git a/CHANGES b/CHANGES
index 71bacf6facc493cdeb36dd2049d99f61a61ee68f..73ced8c024cb51d84c9bac15eb59ad76ec50e49b 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,7 @@
+4813.  [bug]           Address potential read after free errors from
+                       query_synthnodata, query_synthwildcard and
+                       query_synthnxdomain. [RT #46547]
+
 4812.  [bug]           Minor improvements to stability and consistency of code
                        handling managed keys. [RT #46468]
 
index b9596716bbd028ea1262046bf439150b3dea9801..fea369225436e661dd432a1c69c431ae8cdd9399 100644 (file)
@@ -8424,7 +8424,7 @@ query_synthnodata(query_ctx_t *qctx, const dns_name_t *signer,
                goto cleanup;
        }
 
-       dns_name_clone(signer, name);
+       dns_name_copy(signer, name, NULL);
 
        /*
         * Add SOA record. Omit the RRSIG if DNSSEC was not requested.
@@ -8489,7 +8489,7 @@ query_synthwildcard(query_ctx_t *qctx, dns_rdataset_t *rdataset,
                result = ISC_R_NOMEMORY;
                goto cleanup;
        }
-       dns_name_clone(qctx->client->query.qname, name);
+       dns_name_copy(qctx->client->query.qname, name, NULL);
 
        clone = query_newrdataset(qctx->client);
        if (clone == NULL) {
@@ -8650,7 +8650,7 @@ query_synthnxdomain(query_ctx_t *qctx,
                goto cleanup;
        }
 
-       dns_name_clone(signer, name);
+       dns_name_copy(signer, name, NULL);
 
        /*
         * Add SOA record. Omit the RRSIG if DNSSEC was not requested.
@@ -8681,7 +8681,7 @@ query_synthnxdomain(query_ctx_t *qctx,
                        goto cleanup;
                }
 
-               dns_name_clone(nowild, name);
+               dns_name_copy(nowild, name, NULL);
 
                clone = query_newrdataset(qctx->client);
                sigclone = query_newrdataset(qctx->client);