Skip to content

Commit cd2ed91

Browse files
authored
gh-115538: Emit warning when use bool as fd in _io.WindowsConsoleIO (GH-116925)
1 parent 43c9d61 commit cd2ed91

File tree

3 files changed

+15
-0
lines changed

3 files changed

+15
-0
lines changed

Lib/test/test_winconsoleio.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@ def test_open_fd(self):
4343
self.assertEqual(0, f.fileno())
4444
f.close() # multiple close should not crash
4545
f.close()
46+
with self.assertWarns(RuntimeWarning):
47+
with ConIO(False):
48+
pass
4649

4750
try:
4851
f = ConIO(1, 'w')
@@ -55,6 +58,9 @@ def test_open_fd(self):
5558
self.assertEqual(1, f.fileno())
5659
f.close()
5760
f.close()
61+
with self.assertWarns(RuntimeWarning):
62+
with ConIO(False):
63+
pass
5864

5965
try:
6066
f = ConIO(2, 'w')
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
:class:`_io.WindowsConsoleIO` now emit a warning if a boolean value is
2+
passed as a filedescriptor argument.

Modules/_io/winconsoleio.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,13 @@ _io__WindowsConsoleIO___init___impl(winconsoleio *self, PyObject *nameobj,
298298
self->fd = -1;
299299
}
300300

301+
if (PyBool_Check(nameobj)) {
302+
if (PyErr_WarnEx(PyExc_RuntimeWarning,
303+
"bool is used as a file descriptor", 1))
304+
{
305+
return -1;
306+
}
307+
}
301308
fd = PyLong_AsInt(nameobj);
302309
if (fd < 0) {
303310
if (!PyErr_Occurred()) {

0 commit comments

Comments
 (0)