In dns-zone-transfer.nse, return "<parse error>" in case domain decoding fails.

otherwise there is an assertion failure trying to insert a nil into an output
table in tab.lua. Increase the maximum number of message compression pointers
we will follow in dns.lua from 3 to 10, because Brandon found a server that
used 4..
This commit is contained in:
david 2009-02-27 20:16:29 +00:00
parent 5924490adf
commit 62aa04c11a
2 changed files with 4 additions and 2 deletions

View file

@ -486,7 +486,7 @@ function decStr(data, pos)
local part
-- Avoid infinite recursion on malformed compressed messages.
limit = limit or 3
limit = limit or 10
if limit < 0 then
return pos, nil
end

View file

@ -123,7 +123,9 @@ end
--@param data String of data.
--@param offset Offset in the string to read the domain name.
function parse_domain(data, offset)
return dns.decStr(data, offset)
local offset, domain = dns.decStr(data, offset)
domain = domain or "<parse error>"
return offset, domain
end
--- Build RFC 1035 root domain name from the name of the DNS server