Mercurial > cpython-lru_cache-weakref
diff Modules/selectmodule.c @ 72115:852ca32eb18d 3.2
Issue #12287: Fix a stack corruption in ossaudiodev module when the FD is
greater than FD_SETSIZE.
| author | Charles-François Natali <neologix@free.fr> |
|---|---|
| date | Sun, 28 Aug 2011 17:51:43 +0200 |
| parents | 0610f70e6694 |
| children | bc9b2956bb8b ad1c09b6a5b9 |
line wrap: on
line diff
--- a/Modules/selectmodule.c Sun Aug 28 11:26:46 2011 +0200 +++ b/Modules/selectmodule.c Sun Aug 28 17:51:43 2011 +0200 @@ -110,7 +110,7 @@ #if defined(_MSC_VER) max = 0; /* not used for Win32 */ #else /* !_MSC_VER */ - if (v < 0 || v >= FD_SETSIZE) { + if (!_PyIsSelectable_fd(v)) { PyErr_SetString(PyExc_ValueError, "filedescriptor out of range in select()"); goto finally; @@ -160,13 +160,6 @@ for (j = 0; fd2obj[j].sentinel >= 0; j++) { fd = fd2obj[j].fd; if (FD_ISSET(fd, set)) { -#ifndef _MSC_VER - if (fd > FD_SETSIZE) { - PyErr_SetString(PyExc_SystemError, - "filedescriptor out of range returned in select()"); - goto finally; - } -#endif o = fd2obj[j].obj; fd2obj[j].obj = NULL; /* transfer ownership */
