From bf478d6fcf7db1cc268708dc4e88e935a1f00106 Mon Sep 17 00:00:00 2001 From: Frederick Price Date: Wed, 8 Nov 2023 13:56:55 -0500 Subject: [PATCH] BE-3131 Fix regression in test_signal Fix for code removed by e361063c32483cea3a90af5bac7ca68be3569b82. An update was also made to the if statement. Failing test: ====================================================================== FAIL: test_invalid_fd (__main__.WakeupFDTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/as-build/.cache/activestate/46e56921/usr/lib/python2.7/test/test_signal.py", line 239, in test_invalid_fd self.assertRaises(ValueError, signal.set_wakeup_fd, fd) AssertionError: ValueError not raised --- Modules/signalmodule.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c index c8c445fbf94770..88200acaff66f4 100644 --- a/Modules/signalmodule.c +++ b/Modules/signalmodule.c @@ -417,6 +417,12 @@ signal_set_wakeup_fd(PyObject *self, PyObject *args) return NULL; } #endif + + if (fd != -1 && fstat(fd, &buf) != 0) { + PyErr_SetString(PyExc_ValueError, "invalid fd"); + return NULL; + } + old_fd = wakeup_fd; wakeup_fd = fd; return PyLong_FromLong(old_fd);