]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Fix memory leak when caching wildcard records for aggressive NSEC use
authorRalph Dolmans <ralph@nlnetlabs.nl>
Wed, 25 Apr 2018 13:13:05 +0000 (13:13 +0000)
committerRalph Dolmans <ralph@nlnetlabs.nl>
Wed, 25 Apr 2018 13:13:05 +0000 (13:13 +0000)
git-svn-id: file:///svn/unbound/trunk@4662 be551aaa-1e26-0410-a405-d3ace91eadb9

doc/Changelog
services/cache/rrset.c

index 3ba74e349f674d57e2dc5b69c2b6c52ea884031d..c48609b9780f4f2019ae650e43e7e4293f7f8630 100644 (file)
@@ -1,3 +1,6 @@
+25 April 2018: Ralph
+       - Fix memory leak when caching wildcard records for aggressive NSEC use
+
 24 April 2018: Wouter
        - Fix contrib/fastrpz.patch for this release.
        - Fix auth https for libev.
index 0b41fcd7dc3f3798f0ced82478678b90ae34ef3c..26c1aeb91c62cc4d258353e0e81c0795c2d9e1a2 100644 (file)
@@ -255,9 +255,11 @@ void rrset_cache_update_wildcard(struct rrset_cache* rrset_cache,
        wc_dname[1] = (uint8_t)'*';
        memmove(wc_dname+2, ce, ce_len);
 
+       free(rrset->rk.dname);
        rrset->rk.dname_len = ce_len + 2;
        rrset->rk.dname = (uint8_t*)memdup(wc_dname, rrset->rk.dname_len);
        if(!rrset->rk.dname) {
+               alloc_special_release(alloc, rrset);
                log_err("memdup failure in rrset_cache_update_wildcard");
                return;
        }