#4877: Fix a segfault in xml.parsers.expat while attempting to parse a closed file.
diff --git a/Lib/test/test_pyexpat.py b/Lib/test/test_pyexpat.py
index 840a7a8..75b031a 100644
--- a/Lib/test/test_pyexpat.py
+++ b/Lib/test/test_pyexpat.py
@@ -6,6 +6,7 @@
from xml.parsers import expat
+from test import test_support
from test.test_support import sortdict, run_unittest
@@ -217,6 +218,16 @@
self.assertEqual(op[15], "External entity ref: (None, u'entity.file', None)")
self.assertEqual(op[16], "End element: u'root'")
+ # Issue 4877: expat.ParseFile causes segfault on a closed file.
+ fp = open(test_support.TESTFN, 'wb')
+ try:
+ fp.close()
+ parser = expat.ParserCreate()
+ with self.assertRaises(ValueError):
+ parser.ParseFile(fp)
+ finally:
+ test_support.unlink(test_support.TESTFN)
+
class NamespaceSeparatorTest(unittest.TestCase):
def test_legal(self):