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:
parent
ec0ab5d77d
commit
dbf08d1a42
@ -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;
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user