diff options
Diffstat (limited to 'services/cache/rrset.c')
| -rw-r--r-- | services/cache/rrset.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/services/cache/rrset.c b/services/cache/rrset.c index 0b41fcd7dc3f..26c1aeb91c62 100644 --- a/services/cache/rrset.c +++ b/services/cache/rrset.c @@ -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; } |
