Remove arbitrary limit from DNS result parsing
The name resolution would abort when getting more than 63 records per request, due to what seems to be a left-over from the original code. This check was non-breaking but spurious prior to TCP fallback support, since any 512-byte packet with more than 63 records was necessarily malformed. But now, it wrongly rejects valid results. Reported by Daniel Stefanik in Alpine Linux aports issue 15320.pull/1141/head
parent
1a6b4ab627
commit
6992d8c195
|
@ -40,7 +40,6 @@ int __dns_parse(const unsigned char *r, int rlen,
|
|||
p = r+12;
|
||||
qdcount = r[4]*256 + r[5];
|
||||
ancount = r[6]*256 + r[7];
|
||||
if (qdcount+ancount > 64) return -1;
|
||||
while (qdcount--) {
|
||||
while (p-r < rlen && *p-1U < 127) p++;
|
||||
if (p>r+rlen-6)
|
||||
|
|
Loading…
Reference in New Issue