summaryrefslogtreecommitdiff
path: root/lib-src/emacsclient.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib-src/emacsclient.c')
-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
}