Validate nbufs in UDP send functions

Added validation for nbufs to ensure it is within the range of 1 to 1024 * 1024.
This commit is contained in:
Oren 2026-03-13 17:38:51 +02:00 committed by GitHub
parent ec0ab5d77d
commit dbf08d1a42
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -492,6 +492,9 @@ int uv_udp_send(uv_udp_send_t* req,
uv_udp_send_cb send_cb) {
int addrlen;
if (nbufs < 1 || nbufs > 1024 * 1024)
return UV_EINVAL;
addrlen = uv__udp_check_before_send(handle, addr);
if (addrlen < 0)
return addrlen;
@ -506,6 +509,9 @@ int uv_udp_try_send(uv_udp_t* handle,
const struct sockaddr* addr) {
int addrlen;
if (nbufs < 1 || nbufs > 1024 * 1024)
return UV_EINVAL;
addrlen = uv__udp_check_before_send(handle, addr);
if (addrlen < 0)
return addrlen;
@ -520,12 +526,18 @@ int uv_udp_try_send2(uv_udp_t* handle,
unsigned int nbufs[/*count*/],
struct sockaddr* addrs[/*count*/],
unsigned int flags) {
unsigned int i;
if (count < 1)
return UV_EINVAL;
if (flags != 0)
return UV_EINVAL;
for (i = 0; i < count; i++)
if (nbufs[i] < 1 || nbufs[i] > 1024 * 1024)
return UV_EINVAL;
if (handle->send_queue_count > 0)
return UV_EAGAIN;