mirror of
http://thekelleys.org.uk/git/dnsmasq.git
synced 2026-10-24 12:04:38 +00:00
d823d8e9cde08ab05a1df521e5c87293588f6f70
get_rdata() contains another instance of a crash caused by a false value of RDLEN in a resource-record. An RR containing name which is longer than the rdlen of the RR can get get_rdata into a state where it calculates the length of the data following the name as a negative number which is then promoted to a very large positive number, and causing SIGSEGV. This can be triggered by crafted packets from malicous DNS servers, but only when DNSSEC validation is enabled. The attack packets do not have to be correctly DNSSEC signed. Thanks to Tristan G. for spotting this problem. Also fix error handling for RRs with a fixed size fields in the specification where the rrsize indicates that there are zero bytes in that position.
Languages
C
94.3%
Perl
2.2%
HTML
1.2%
Shell
1%
Makefile
0.6%
Other
0.6%