diff options
Diffstat (limited to 'lib-src/emacsclient.c')
-rw-r--r-- | lib-src/emacsclient.c | 11 |
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 } |