From: Lennart Poettering Date: Wed, 30 Jul 2014 12:21:18 +0000 (+0200) Subject: resolved: properly handle adding empty replies to cache X-Git-Tag: v216~372 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=0ec7c46eed06269edf80121ec53f1eba2e2870d4 resolved: properly handle adding empty replies to cache --- diff --git a/src/resolve/resolved-dns-cache.c b/src/resolve/resolved-dns-cache.c index 28a375bae..7359dfa27 100644 --- a/src/resolve/resolved-dns-cache.c +++ b/src/resolve/resolved-dns-cache.c @@ -352,12 +352,16 @@ int dns_cache_put(DnsCache *c, DnsQuestion *q, int rcode, DnsAnswer *answer, uns int r; assert(c); - assert(answer); + assert(q); /* First, delete all matching old RRs, so that we only keep * complete by_key in place. */ for (i = 0; i < q->n_keys; i++) dns_cache_remove(c, q->keys[i]); + + if (!answer) + return 0; + for (i = 0; i < answer->n_rrs; i++) dns_cache_remove(c, answer->rrs[i]->key);