]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
A6: return FORMERR in fromwire if bits are non zero.
authorMark Andrews <marka@isc.org>
Sat, 15 Aug 2020 00:12:50 +0000 (10:12 +1000)
committerOndřej Surý <ondrej@sury.org>
Tue, 18 Aug 2020 09:04:05 +0000 (11:04 +0200)
oss_fuzz: Issue 24864: bind9:dns_rdata_fromwire_text_fuzzer: Overwrites-const-input in dns_rdata_fromwire_text_fuzzer

lib/dns/rdata/in_1/a6_38.c

index ac721aad4cb1db9384a61b2ffa68cdff50815c0d..d69c5d3dc2c898bc5858839e7af5cf71de3ba5c3 100644 (file)
@@ -182,7 +182,9 @@ fromwire_in_a6(ARGS_FROMWIRE) {
                        return (ISC_R_UNEXPECTEDEND);
                }
                mask = 0xff >> (prefixlen % 8);
-               sr.base[0] &= mask; /* Ensure pad bits are zero. */
+               if ((sr.base[0] & ~mask) != 0) {
+                       return (DNS_R_FORMERR);
+               }
                RETERR(mem_tobuffer(target, sr.base, octets));
                isc_buffer_forward(source, octets);
        }