summaryrefslogtreecommitdiff
path: root/lib-src
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2022-09-06 15:09:09 +0300
committerEli Zaretskii <eliz@gnu.org>2022-09-06 15:09:09 +0300
commit088b81031b8873f898cc611d73d1d2d55eb3c942 (patch)
tree158e52cc75d1a411566cf9f8c6fcb0e1b95db81f /lib-src
parenta99665cf38b0a237d6d0afed09a061ee0080cb19 (diff)
downloademacs-088b81031b8873f898cc611d73d1d2d55eb3c942.tar.gz
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.
Diffstat (limited to 'lib-src')
-rw-r--r--lib-src/emacsclient.c11
1 files 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 <sys/socket.h>
# include <sys/un.h>
-# 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 <ctype.h>
#include <errno.h>
#include <getopt.h>
@@ -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
}