From 1263c85ef32ea35969748cd4304cd1a51d19e8d1 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Wed, 9 Sep 2020 00:07:50 +0900 Subject: util: refuse to set too large value for socket buffer size --- src/basic/socket-util.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/basic/socket-util.c') diff --git a/src/basic/socket-util.c b/src/basic/socket-util.c index fb12659857..3230d76b02 100644 --- a/src/basic/socket-util.c +++ b/src/basic/socket-util.c @@ -621,6 +621,9 @@ int fd_inc_sndbuf(int fd, size_t n) { int r, value; socklen_t l = sizeof(value); + if (n > INT_MAX) + return -ERANGE; + r = getsockopt(fd, SOL_SOCKET, SO_SNDBUF, &value, &l); if (r >= 0 && l == sizeof(value) && (size_t) value >= n*2) return 0; @@ -640,6 +643,9 @@ int fd_inc_rcvbuf(int fd, size_t n) { int r, value; socklen_t l = sizeof(value); + if (n > INT_MAX) + return -ERANGE; + r = getsockopt(fd, SOL_SOCKET, SO_RCVBUF, &value, &l); if (r >= 0 && l == sizeof(value) && (size_t) value >= n*2) return 0; -- cgit v1.2.1