diff Objects/stringlib/string_format.h @ 67791:3ef865327d7b

Issue #11302: missing type check on _string.formatter_field_name_split and _string.formatter_parser caused crash. Originial patch by haypo, reviewed by me, okayed by Georg.
author Eric Smith <eric@trueblade.com>
date Sat, 29 Jan 2011 11:15:35 +0000
parents 4c1c48b3af66
children 81d7f78a633a
line wrap: on
line diff
--- a/Objects/stringlib/string_format.h	Sat Jan 29 08:51:57 2011 +0000
+++ b/Objects/stringlib/string_format.h	Sat Jan 29 11:15:35 2011 +0000
@@ -1192,6 +1192,11 @@
 {
     formatteriterobject *it;
 
+    if (!PyUnicode_Check(self)) {
+        PyErr_Format(PyExc_TypeError, "expected str, got %s", Py_TYPE(self)->tp_name);
+        return NULL;
+    }
+
     it = PyObject_New(formatteriterobject, &PyFormatterIter_Type);
     if (it == NULL)
         return NULL;
@@ -1332,6 +1337,11 @@
     PyObject *first_obj = NULL;
     PyObject *result = NULL;
 
+    if (!PyUnicode_Check(self)) {
+        PyErr_Format(PyExc_TypeError, "expected str, got %s", Py_TYPE(self)->tp_name);
+        return NULL;
+    }
+
     it = PyObject_New(fieldnameiterobject, &PyFieldNameIter_Type);
     if (it == NULL)
         return NULL;