[Python-checkins] r51130 - in python/branches/release24-maint: Lib/test/test_builtin.py Misc/NEWS Python/bltinmodule.c

georg.brandl python-checkins at python.org
Sun Aug 6 10:24:00 CEST 2006


Author: georg.brandl
Date: Sun Aug  6 10:23:59 2006
New Revision: 51130

Modified:
   python/branches/release24-maint/Lib/test/test_builtin.py
   python/branches/release24-maint/Misc/NEWS
   python/branches/release24-maint/Python/bltinmodule.c
Log:
Bug #1535165: fixed a segfault in input() and raw_input() when
sys.stdin is closed.
 (backport from rev. 51129)

Modified: python/branches/release24-maint/Lib/test/test_builtin.py
==============================================================================
--- python/branches/release24-maint/Lib/test/test_builtin.py	(original)
+++ python/branches/release24-maint/Lib/test/test_builtin.py	Sun Aug  6 10:23:59 2006
@@ -1039,6 +1039,14 @@
             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'")

Modified: python/branches/release24-maint/Misc/NEWS
==============================================================================
--- python/branches/release24-maint/Misc/NEWS	(original)
+++ python/branches/release24-maint/Misc/NEWS	Sun Aug  6 10:23:59 2006
@@ -12,6 +12,9 @@
 Core and builtins
 -----------------
 
+- Bug #1535165: fixed a segfault in input() and raw_input() when
+  sys.stdin is closed.
+
 - Bug #1524310: Properly report errors from FindNextFile in os.listdir.
 
 - Bug #927248: Recursive method-wrapper objects can now safely

Modified: python/branches/release24-maint/Python/bltinmodule.c
==============================================================================
--- python/branches/release24-maint/Python/bltinmodule.c	(original)
+++ python/branches/release24-maint/Python/bltinmodule.c	Sun Aug  6 10:23:59 2006
@@ -1609,7 +1609,7 @@
 		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;


More information about the Python-checkins mailing list