Issue #15604: Update uses of PyObject_IsTrue() to check for and handle errors correctly.
Patch by Serhiy Storchaka.
diff --git a/Modules/_posixsubprocess.c b/Modules/_posixsubprocess.c
index 21ad966..44e1613 100644
--- a/Modules/_posixsubprocess.c
+++ b/Modules/_posixsubprocess.c
@@ -525,6 +525,8 @@
return NULL;
close_fds = PyObject_IsTrue(py_close_fds);
+ if (close_fds < 0)
+ return NULL;
if (close_fds && errpipe_write < 3) { /* precondition */
PyErr_SetString(PyExc_ValueError, "errpipe_write must be >= 3");
return NULL;