[Python-checkins] r74043 - in python/branches/release26-maint: Lib/test/test_warnings.py Misc/NEWS Python/_warnings.c

hirokazu.yamamoto python-checkins at python.org
Fri Jul 17 08:33:04 CEST 2009


Author: hirokazu.yamamoto
Date: Fri Jul 17 08:33:03 2009
New Revision: 74043

Log:
Merged revisions 74040,74042 via svnmerge from 
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r74040 | hirokazu.yamamoto | 2009-07-17 15:20:46 +0900 | 1 line
  
  Issue #6415: Fixed warnings.warn sagfault on bad formatted string.
........
  r74042 | hirokazu.yamamoto | 2009-07-17 15:26:54 +0900 | 1 line
  
  NEWS about r74040.
........


Modified:
   python/branches/release26-maint/   (props changed)
   python/branches/release26-maint/Lib/test/test_warnings.py
   python/branches/release26-maint/Misc/NEWS
   python/branches/release26-maint/Python/_warnings.c

Modified: python/branches/release26-maint/Lib/test/test_warnings.py
==============================================================================
--- python/branches/release26-maint/Lib/test/test_warnings.py	(original)
+++ python/branches/release26-maint/Lib/test/test_warnings.py	Fri Jul 17 08:33:03 2009
@@ -337,6 +337,19 @@
                             self.module.warn_explicit,
                             None, Warning, None, 1, registry=42)
 
+    def test_bad_str(self):
+        # issue 6415
+        # Warnings instance with a bad format string for __str__ should not
+        # trigger a bus error.
+        class BadStrWarning(Warning):
+            """Warning with a bad format string for __str__."""
+            def __str__(self):
+                return ("A bad formatted string %(err)" %
+                        {"err" : "there is no %(err)s"})
+
+        with self.assertRaises(ValueError):
+            self.module.warn(BadStrWarning())
+
 
 class CWarnTests(BaseTest, WarnTests):
     module = c_warnings

Modified: python/branches/release26-maint/Misc/NEWS
==============================================================================
--- python/branches/release26-maint/Misc/NEWS	(original)
+++ python/branches/release26-maint/Misc/NEWS	Fri Jul 17 08:33:03 2009
@@ -62,6 +62,8 @@
 Library
 -------
 
+- Issue #6415: Fixed warnings.warn sagfault on bad formatted string.
+
 - Issue #6344: Fixed a crash of mmap.read() when passed a negative argument.
 
 - Issue #5230: pydoc would report no documentation found if a module generated

Modified: python/branches/release26-maint/Python/_warnings.c
==============================================================================
--- python/branches/release26-maint/Python/_warnings.c	(original)
+++ python/branches/release26-maint/Python/_warnings.c	Fri Jul 17 08:33:03 2009
@@ -304,6 +304,8 @@
     }
     if (rc == 1) {
         text = PyObject_Str(message);
+        if (text == NULL)
+            goto cleanup;
         category = (PyObject*)message->ob_type;
     }
     else {


More information about the Python-checkins mailing list