From: Mark Andrews Date: Fri, 17 Apr 2015 13:09:05 +0000 (+1000) Subject: don't set rdh_ttl in init_rdataset X-Git-Tag: v9.11.0a1~865 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=def6608a44b02a8b45db01cd7c54cf466f39bdca;p=thirdparty%2Fbind9.git don't set rdh_ttl in init_rdataset --- diff --git a/lib/dns/rbtdb.c b/lib/dns/rbtdb.c index aadb481ba96..0782a8fb710 100644 --- a/lib/dns/rbtdb.c +++ b/lib/dns/rbtdb.c @@ -1031,11 +1031,14 @@ set_ttl(dns_rbtdb_t *rbtdb, rdatasetheader_t *header, dns_ttl_t newttl) { isc_heap_t *heap; dns_ttl_t oldttl; - oldttl = header->rdh_ttl; - header->rdh_ttl = newttl; - if (!IS_CACHE(rbtdb)) + if (!IS_CACHE(rbtdb)) { + header->rdh_ttl = newttl; return; + } + + oldttl = header->rdh_ttl; + header->rdh_ttl = newttl; /* * It's possible the rbtdb is not a cache. If this is the case, @@ -1555,7 +1558,6 @@ static inline void init_rdataset(dns_rbtdb_t *rbtdb, rdatasetheader_t *h) { ISC_LINK_INIT(h, link); h->heap_index = 0; - h->rdh_ttl = 0; h->is_mmapped = 0; h->next_is_relative = 0; h->node_is_relative = 0; @@ -1605,6 +1607,7 @@ new_rdataset(dns_rbtdb_t *rbtdb, isc_mem_t *mctx) { #endif memset(h->upper, 0xeb, sizeof(h->upper)); init_rdataset(rbtdb, h); + h->rdh_ttl = 0; return (h); }