]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Only call memmove if the rdata length is non zero
authorMark Andrews <marka@isc.org>
Tue, 12 Mar 2024 23:15:03 +0000 (10:15 +1100)
committerMark Andrews <marka@isc.org>
Thu, 14 Mar 2024 00:06:11 +0000 (11:06 +1100)
This avoids undefined behaviour on zero length rdata where the
data pointer is NULL.

(cherry picked from commit 228cc557fe4ca29e34eccb3a1846d7f754879aed)

lib/dns/rdataslab.c

index 24fdaa83a19425e4280565e5aa368f9a2d5e16c2..2b4cc4bed3f113429f0b49d6b7409d759bae0f22 100644 (file)
@@ -320,7 +320,9 @@ dns_rdataslab_fromrdataset(dns_rdataset_t *rdataset, isc_mem_t *mctx,
                                            ? DNS_RDATASLAB_OFFLINE
                                            : 0;
                }
-               memmove(rawbuf, x[i].rdata.data, x[i].rdata.length);
+               if (x[i].rdata.length != 0) {
+                       memmove(rawbuf, x[i].rdata.data, x[i].rdata.length);
+               }
                rawbuf += x[i].rdata.length;
        }