]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix the MS-Windows build
authorEli Zaretskii <eliz@gnu.org>
Tue, 6 Sep 2022 12:09:09 +0000 (15:09 +0300)
committerEli Zaretskii <eliz@gnu.org>
Tue, 6 Sep 2022 12:09:09 +0000 (15:09 +0300)
* 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

index 15acb4589a9779e6a795c87121e1c52c41c8c6f0..2e5d8d0cc2495b10447b3ce13b52f76a016b3941 100644 (file)
@@ -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
 }