Issue #11757: select.select() now raises ValueError when a negative timeout
is passed (previously, a select.error with EINVAL would be raised). Patch
by Charles-François Natali.
diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c
index 65e1826..5aa67dd 100644
--- a/Modules/selectmodule.c
+++ b/Modules/selectmodule.c
@@ -234,6 +234,11 @@
"timeout period too long");
return NULL;
}
+ if (timeout < 0) {
+ PyErr_SetString(PyExc_ValueError,
+ "timeout must be non-negative");
+ return NULL;
+ }
seconds = (long)timeout;
timeout = timeout - (double)seconds;
tv.tv_sec = seconds;