aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2018-06-09 15:35:03 +0200
committerKim Alvefur <zash@zash.se>2018-06-09 15:35:03 +0200
commitb1a53ac56dfc2aa339f86a5ad9fe24e33560a57f (patch)
tree0f11557feaea88338eda25d2b8a3fb2dc9afcc85 /net
parent74974ca773d521f360212ae6ac23a87f5e1bb7eb (diff)
downloadprosody-b1a53ac56dfc2aa339f86a5ad9fe24e33560a57f.tar.gz
prosody-b1a53ac56dfc2aa339f86a5ad9fe24e33560a57f.zip
net.dns: Don't attempt to cache unparsed data (fixes #1056)
rr[qtype:lower()] can be nil. I think this happens if the type does not have a parser. Also see #819 #976
Diffstat (limited to 'net')
-rw-r--r--net/dns.lua2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/dns.lua b/net/dns.lua
index b69ba953..8a7d4e7a 100644
--- a/net/dns.lua
+++ b/net/dns.lua
@@ -672,7 +672,7 @@ function resolver:remember(rr, type) -- - - - - - - - - - - - - - remember
self.cache = self.cache or setmetatable({}, cache_metatable);
local rrs = get(self.cache, qclass, type, qname) or
set(self.cache, qclass, type, qname, setmetatable({}, rrs_metatable));
- if not rrs[rr[qtype:lower()]] then
+ if rr[qtype:lower()] and not rrs[rr[qtype:lower()]] then
rrs[rr[qtype:lower()]] = true;
append(rrs, rr);
end