From 088b81031b8873f898cc611d73d1d2d55eb3c942 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Tue, 6 Sep 2022 15:09:09 +0300 Subject: [PATCH] Fix the MS-Windows build * lib-src/emacsclient.c (DEFAULT_TIMEOUT): Move out of the !WINDOWSNT condition, to fix the MS-Windows compilation. (set_socket_timeout) [WINDOWSNT]: Protect against too-large values of timeout. --- lib-src/emacsclient.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c index 15acb4589a9..2e5d8d0cc24 100644 --- a/lib-src/emacsclient.c +++ b/lib-src/emacsclient.c @@ -55,8 +55,6 @@ char *w32_getenv (const char *); # include # include -# define DEFAULT_TIMEOUT (30) - # define SOCKETS_IN_FILE_SYSTEM # define INVALID_SOCKET (-1) @@ -68,6 +66,8 @@ char *w32_getenv (const char *); #endif /* !WINDOWSNT */ +#define DEFAULT_TIMEOUT (30) + #include #include #include @@ -1898,7 +1898,12 @@ set_socket_timeout (HSOCKET socket, int seconds) timeout.tv_usec = 0; setsockopt (socket, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof timeout); #else - DWORD timeout = seconds * 1000; + DWORD timeout; + + if (seconds > INT_MAX / 1000) + timeout = INT_MAX; + else + timeout = seconds * 1000; setsockopt (socket, SOL_SOCKET, SO_RCVTIMEO, (char *) &timeout, sizeof timeout); #endif } -- 2.39.2