From: Guido van Rossum Date: Fri, 19 Jul 2002 12:44:59 +0000 (+0000) Subject: Bail out early from internal_select() when socket file descriptor X-Git-Tag: v2.3c1~4932 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ad654906288a1ed985b8649c75a9c6037448cb9d;p=python Bail out early from internal_select() when socket file descriptor closed. Prevents core dump. --- diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index cba261e85c..d5c925b79f 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);