[Python-checkins] r74460 - in python/branches/release31-maint: Lib/test/test_module.py Misc/NEWS Objects/object.c
benjamin.peterson
python-checkins at python.org
Sat Aug 15 15:25:29 CEST 2009
Author: benjamin.peterson
Date: Sat Aug 15 15:25:28 2009
New Revision: 74460
Log:
Merged revisions 74459 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
................
r74459 | benjamin.peterson | 2009-08-15 08:23:05 -0500 (Sat, 15 Aug 2009) | 9 lines
Merged revisions 74457 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r74457 | benjamin.peterson | 2009-08-15 08:16:38 -0500 (Sat, 15 Aug 2009) | 1 line
#6707 fix a crash with dir() on an uninitialized module
........
................
Modified:
python/branches/release31-maint/ (props changed)
python/branches/release31-maint/Lib/test/test_module.py
python/branches/release31-maint/Misc/NEWS
python/branches/release31-maint/Objects/object.c
Modified: python/branches/release31-maint/Lib/test/test_module.py
==============================================================================
--- python/branches/release31-maint/Lib/test/test_module.py (original)
+++ python/branches/release31-maint/Lib/test/test_module.py Sat Aug 15 15:25:28 2009
@@ -11,6 +11,7 @@
# and __doc__ is None
foo = ModuleType.__new__(ModuleType)
self.assertTrue(foo.__dict__ is None)
+ self.assertRaises(SystemError, dir, foo)
try:
s = foo.__name__
self.fail("__name__ = %s" % repr(s))
Modified: python/branches/release31-maint/Misc/NEWS
==============================================================================
--- python/branches/release31-maint/Misc/NEWS (original)
+++ python/branches/release31-maint/Misc/NEWS Sat Aug 15 15:25:28 2009
@@ -12,6 +12,8 @@
Core and Builtins
-----------------
+- Issue #6707: dir() on an uninitialized module caused a crash.
+
- Issue #6540: Fixed crash for bytearray.translate() with invalid parameters.
- Issue #6573: set.union() stopped processing inputs if an instance of self
Modified: python/branches/release31-maint/Objects/object.c
==============================================================================
--- python/branches/release31-maint/Objects/object.c (original)
+++ python/branches/release31-maint/Objects/object.c Sat Aug 15 15:25:28 2009
@@ -1265,9 +1265,11 @@
if (PyDict_Check(dict))
result = PyDict_Keys(dict);
else {
- PyErr_Format(PyExc_TypeError,
- "%.200s.__dict__ is not a dictionary",
- PyModule_GetName(obj));
+ const char *name = PyModule_GetName(obj);
+ if (name)
+ PyErr_Format(PyExc_TypeError,
+ "%.200s.__dict__ is not a dictionary",
+ name);
}
}
More information about the Python-checkins
mailing list