mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-23 10:39:16 +00:00
[master] check addrlen/scopelen fit within family address length
This commit is contained in:
parent
1330ae5fc2
commit
0302fcbf7e
@ -3260,11 +3260,15 @@ render_ecs(isc_buffer_t *ecsbuf, isc_buffer_t *target) {
|
|||||||
for (i = 0; i < addrbytes; i ++)
|
for (i = 0; i < addrbytes; i ++)
|
||||||
addr[i] = isc_buffer_getuint8(ecsbuf);
|
addr[i] = isc_buffer_getuint8(ecsbuf);
|
||||||
|
|
||||||
if (family == 1)
|
if (family == 1) {
|
||||||
|
if (addrlen > 32 || scopelen > 32)
|
||||||
|
return (DNS_R_OPTERR);
|
||||||
inet_ntop(AF_INET, addr, addr_text, sizeof(addr_text));
|
inet_ntop(AF_INET, addr, addr_text, sizeof(addr_text));
|
||||||
else if (family == 2)
|
} else if (family == 2) {
|
||||||
|
if (addrlen > 128 || scopelen > 128)
|
||||||
|
return (DNS_R_OPTERR);
|
||||||
inet_ntop(AF_INET6, addr, addr_text, sizeof(addr_text));
|
inet_ntop(AF_INET6, addr, addr_text, sizeof(addr_text));
|
||||||
else {
|
} else {
|
||||||
snprintf(addr_text, sizeof(addr_text),
|
snprintf(addr_text, sizeof(addr_text),
|
||||||
"Unsupported family %u", family);
|
"Unsupported family %u", family);
|
||||||
ADD_STRING(target, addr_text);
|
ADD_STRING(target, addr_text);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user