summaryrefslogtreecommitdiff
path: root/services/cache/rrset.c
diff options
context:
space:
mode:
authorDag-Erling Smørgrav <des@FreeBSD.org>2018-05-12 11:56:52 +0000
committerDag-Erling Smørgrav <des@FreeBSD.org>2018-05-12 11:56:52 +0000
commit4289761a7b61df4b64c11ada446a187df61e6a1e (patch)
treeed7ceb7a1652fb9f865fafd21fbe18d1a3b5f79d /services/cache/rrset.c
parent197f1a0fe3e81cde0cd25a3a1f37ebedf9a99488 (diff)
Diffstat (limited to 'services/cache/rrset.c')
-rw-r--r--services/cache/rrset.c2
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;
}