]> 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:25 +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 2783c1cbefca11279266e5f6b36dc36f12251424..14c43818b8055acc45ca87e402baef9a3018e7a3 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;
        }