From ad654906288a1ed985b8649c75a9c6037448cb9d Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Fri, 19 Jul 2002 12:44:59 +0000 Subject: Bail out early from internal_select() when socket file descriptor closed. Prevents core dump. --- Modules/socketmodule.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index cba261e..d5c925b 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -505,9 +505,14 @@ internal_select(PySocketSockObject *s, int writing) fd_set fds; struct timeval tv; + /* Nothing to do unless we're in timeout mode (not non-blocking) */ if (s->sock_timeout <= 0.0) return; + /* Guard against closed socket */ + if (s->sock_fd < 0) + return; + /* Construct the arguments to select */ tv.tv_sec = (int)s->sock_timeout; tv.tv_usec = (int)((s->sock_timeout - tv.tv_sec) * 1e6); -- cgit v0.12