diff --git a/doc/Changelog b/doc/Changelog index 71e56f975..b1a1b7557 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,5 +1,7 @@ 14 July 2010: Wouter - Donation text added to README. + - Fix integer underflow in prefetch ttl creation from cache. This + fixes a potential negative prefetch ttl. 12 July 2010: Wouter - Changed the defaults for num-queries-per-thread/outgoing-range. diff --git a/services/cache/dns.c b/services/cache/dns.c index 81e2f74e8..786ed6ae7 100644 --- a/services/cache/dns.c +++ b/services/cache/dns.c @@ -430,9 +430,9 @@ tomsg(struct module_env* env, struct msgreply_entry* e, struct reply_info* r, msg->rep->flags = r->flags; msg->rep->qdcount = r->qdcount; msg->rep->ttl = r->ttl - now; - if(r->prefetch_ttl - now > 0) + if(r->prefetch_ttl > now) msg->rep->prefetch_ttl = r->prefetch_ttl - now; - else msg->rep->prefetch_ttl = PREFETCH_TTL_CALC(r->prefetch_ttl); + else msg->rep->prefetch_ttl = PREFETCH_TTL_CALC(msg->rep->ttl); msg->rep->security = r->security; msg->rep->an_numrrsets = r->an_numrrsets; msg->rep->ns_numrrsets = r->ns_numrrsets;