From dcb11b2ee408577fc53bad414930d45c4d2c0e29 Mon Sep 17 00:00:00 2001 From: Wouter Wijngaards Date: Thu, 10 Sep 2009 10:01:36 +0000 Subject: [PATCH] Fixup TTL too large bug for bogus responses. git-svn-id: file:///svn/unbound/trunk@1822 be551aaa-1e26-0410-a405-d3ace91eadb9 --- doc/Changelog | 6 ++++++ services/cache/dns.c | 2 ++ testdata/fwd_bogus.tpkg | Bin 0 -> 4442 bytes validator/validator.c | 2 +- 4 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 testdata/fwd_bogus.tpkg diff --git a/doc/Changelog b/doc/Changelog index a272e4adf..bd281e5c0 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,9 @@ +9 September 2009: Wouter + - Fix bug where DNSSEC-bogus messages were marked with too high TTL. + The RRsets would still expire at the normal time, but this would + keep messages bogus in the cache for too long. + - regression test for that bug. + 8 September 2009: Wouter - fixup printing errors when load_cache, they were printed to the SSL connection which broke, now to the log. diff --git a/services/cache/dns.c b/services/cache/dns.c index 3712486d1..a152fa726 100644 --- a/services/cache/dns.c +++ b/services/cache/dns.c @@ -673,6 +673,8 @@ dns_cache_store(struct module_env* env, struct query_info* msgqinf, rep = reply_info_copy(msgrep, env->alloc, NULL); if(!rep) return 0; + /* ttl must be relative ;i.e. 0..86400 not time(0)+86400. + * the env->now is added to message and RRsets in this routine. */ if(is_referral) { /* store rrsets */ diff --git a/testdata/fwd_bogus.tpkg b/testdata/fwd_bogus.tpkg new file mode 100644 index 0000000000000000000000000000000000000000..0dede419c059869ffd554bbcebf7b3427b557f1c GIT binary patch literal 4442 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 == sec_status_bogus) { - vq->orig_msg->rep->ttl = *qstate->env->now + ve->bogus_ttl; + vq->orig_msg->rep->ttl = ve->bogus_ttl; if(qstate->env->cfg->val_log_level >= 1) { log_query_info(0, "validation failure", &qstate->qinfo); } -- 2.47.3