]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Fix similar code in auth_zone synth cname to add the extra checks.
authorW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Tue, 3 Dec 2019 14:11:22 +0000 (15:11 +0100)
committerW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Tue, 3 Dec 2019 14:11:22 +0000 (15:11 +0100)
doc/Changelog
services/authzone.c

index 59541fa34237b7707d66517917f8c9ca0584909f..67f89849d44eb4dc4c28403ee15ae648124496b3 100644 (file)
@@ -5,6 +5,7 @@
          to correct RFC number.
        - Fix Assert Causing DoS in synth_cname(),
          reported by X41 D-Sec.
+       - Fix similar code in auth_zone synth cname to add the extra checks.
 
 2 December 2019: Wouter
        - Merge pull request #122 from he32: In tcp_callback_writer(),
index b59a7334cb876f272ecafe3d495eeae700cb7326..7d806d9d59d06d9400c8b901669f7b040dbd1864 100644 (file)
@@ -2380,6 +2380,10 @@ create_synth_cname(uint8_t* qname, size_t qname_len, struct regional* region,
                return 0; /* rdatalen in DNAME rdata is malformed */
        if(dname_valid(dtarg, dtarglen) != dtarglen)
                return 0; /* DNAME RR has malformed rdata */
+       if(qname_len == 0)
+               return 0; /* too short */
+       if(qname_len <= node->namelen)
+               return 0; /* qname too short for dname removal */
 
        /* synthesize a CNAME */
        newlen = synth_cname_buf(qname, qname_len, node->namelen,