mirror of https://github.com/python/cpython
Bug #1535165: fixed a segfault in input() and raw_input() when
sys.stdin is closed.
This commit is contained in:
parent
534fe18e17
commit
7e3ba2a699
|
@ -1432,6 +1432,14 @@ class BuiltinTest(unittest.TestCase):
|
|||
self.assertEqual(input('testing\n'), 2)
|
||||
self.assertEqual(raw_input(), 'The quick brown fox jumps over the lazy dog.')
|
||||
self.assertEqual(raw_input('testing\n'), 'Dear John')
|
||||
|
||||
# SF 1535165: don't segfault on closed stdin
|
||||
# sys.stdout must be a regular file for triggering
|
||||
sys.stdout = savestdout
|
||||
sys.stdin.close()
|
||||
self.assertRaises(ValueError, input, 'prompt')
|
||||
|
||||
sys.stdout = BitBucket()
|
||||
sys.stdin = cStringIO.StringIO("NULL\0")
|
||||
self.assertRaises(TypeError, input, 42, 42)
|
||||
sys.stdin = cStringIO.StringIO(" 'whitespace'")
|
||||
|
|
|
@ -12,6 +12,9 @@ What's New in Python 2.5 release candidate 1?
|
|||
Core and builtins
|
||||
-----------------
|
||||
|
||||
- Bug #1535165: fixed a segfault in input() and raw_input() when
|
||||
sys.stdin is closed.
|
||||
|
||||
- On Windows, the PyErr_Warn function is now exported from
|
||||
the Python dll again.
|
||||
|
||||
|
|
|
@ -1725,7 +1725,7 @@ builtin_raw_input(PyObject *self, PyObject *args)
|
|||
if (PyFile_WriteString(" ", fout) != 0)
|
||||
return NULL;
|
||||
}
|
||||
if (PyFile_Check(fin) && PyFile_Check(fout)
|
||||
if (PyFile_AsFile(fin) && PyFile_AsFile(fout)
|
||||
&& isatty(fileno(PyFile_AsFile(fin)))
|
||||
&& isatty(fileno(PyFile_AsFile(fout)))) {
|
||||
PyObject *po;
|
||||
|
|
Loading…
Reference in New Issue