Parent Directory | Revision Log | Revision Graph
* Tue Jul 11 2017 Jean-Philipe Pialasse <tests@pialasse.com> 1.05-9.sme -- backport SME10 fixes [SME: 10381] --import patches from openwrt and rename already applied patches --fix security issues [SME: 10374] - 020-dnsroots-update.patch: update list of root DNS servers - 070-dnscache-dpos-tcp-servfail.patch: SERVFAIL rename previous patch dns_transmit-bug.patch - 210-dnscache-strict-forwardonly.patch: rename previous patch dnscache-strict-forwardonly.patch - 270-dnscache-sigpipe-fix.patch: SIGPIPE - 300-bugfix-dnscache-dempsky-poison.patch: CVE-2009-0858 - 310-bugfix-dnscache-merge-outgoing-requests.patch: CVE-2008-4392 - 320-bugfix-dnscache-cache-soa-records.patch: CVE-2008-4392 - 450-dnscache-ghost-domain-CVE-2012-1191.patch: CVE-2012-1191 http://marc.info/?l=djbdns&m=134190748729079&w=2 --bug fixes [SME: 10374] - 060-dnscache-big-udp-packets.patch: accept and handle longer than 512 bytes UDP packets - 230-tinydns-data-semantic-error.patch: handle semantic error to avoid publishing false dns records - 240-tinydns-alias-chain-truncation.patch: rename previous patch tinydns-alias-chain-truncation.patch --fix issue with short ttl cname like akamaid [SME: 8362] - 200-dnscache-cname-handling.patch: rename previous patch dnscache-cname-handling.patch - 330-fix-dnscache-cname-handling.patch: fix dnscache cname for short ttl - 500-cutom-dnscache-maxloop.patch: set max loop to 200 --needed for previous patches to apply cleanly - 030-srv-records-and-axfrget.patch: add SRV record type and axfr-get decompose SRC and PTR records (for 230-*.patch) - 080-dnscache-cache-negatives.patch: rfc2308 ? (for 200-*.patch) - 090-tinydns-one-second.patch: improve tinydns with 8 or more concurent connections (for 240-*.patch) - 120-compiler-temporary-filename.patch: change tmp filename to avoid conflicts (for 230-*.patch) --not backported from SME10 branch - 050-tinydns-mmap-leak.patch: report cdb leak
1 | unnilennium | 1.1 | --- a/query.c |
2 | +++ b/query.c | ||
3 | @@ -193,6 +193,7 @@ static int doit(struct query *z,int stat | ||
4 | int k; | ||
5 | int p; | ||
6 | int q; | ||
7 | + uint32 cachettl; | ||
8 | |||
9 | errno = error_io; | ||
10 | if (state == 1) goto HAVEPACKET; | ||
11 | @@ -470,6 +471,7 @@ static int doit(struct query *z,int stat | ||
12 | rcode = header[3] & 15; | ||
13 | if (rcode && (rcode != 3)) goto DIE; /* impossible; see irrelevant() */ | ||
14 | |||
15 | + cachettl = 0; | ||
16 | flagout = 0; | ||
17 | flagcname = 0; | ||
18 | flagreferral = 0; | ||
19 | @@ -512,6 +514,11 @@ static int doit(struct query *z,int stat | ||
20 | |||
21 | uint16_unpack_big(header + 8,&datalen); | ||
22 | pos += datalen; | ||
23 | + | ||
24 | + if (flagsoa && (pos <= len)) { | ||
25 | + cachettl = ttlget(buf + pos - 4); | ||
26 | + if (soattl < cachettl) cachettl = soattl; | ||
27 | + } | ||
28 | } | ||
29 | posglue = pos; | ||
30 | |||
31 | @@ -689,8 +696,8 @@ static int doit(struct query *z,int stat | ||
32 | } | ||
33 | |||
34 | if (rcode == 3) { | ||
35 | - log_nxdomain(whichserver,d,soattl); | ||
36 | - cachegeneric(DNS_T_ANY,d,"",0,soattl); | ||
37 | + log_nxdomain(whichserver,d,cachettl); | ||
38 | + cachegeneric(DNS_T_ANY,d,"",0,cachettl); | ||
39 | |||
40 | NXDOMAIN: | ||
41 | if (z->level) goto LOWERLEVEL; |
admin@koozali.org | ViewVC Help |
Powered by ViewVC 1.2.1 |