check windows fd validity (closes #16992)
diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c
index eb89a03..0aac98b 100644
--- a/Modules/signalmodule.c
+++ b/Modules/signalmodule.c
@@ -427,7 +427,7 @@
         return NULL;
     }
 #endif
-    if (fd != -1 && fstat(fd, &buf) != 0) {
+    if (fd != -1 && (!_PyVerify_fd(fd) || fstat(fd, &buf) != 0)) {
         PyErr_SetString(PyExc_ValueError, "invalid fd");
         return NULL;
     }