summaryrefslogtreecommitdiffstats
path: root/Objects/stringlib
diff options
context:
space:
mode:
authorEric Smith <eric@trueblade.com>2011-01-29 11:15:35 (GMT)
committerEric Smith <eric@trueblade.com>2011-01-29 11:15:35 (GMT)
commita1eac7218ba098746f611e6edcc8eb5b72bc89e7 (patch)
tree42bf80d38427745f774cb50131d8553817d36c8e /Objects/stringlib
parent08d4293013947f79b9f6587514a918763f326b7d (diff)
downloadcpython-a1eac7218ba098746f611e6edcc8eb5b72bc89e7.zip
cpython-a1eac7218ba098746f611e6edcc8eb5b72bc89e7.tar.gz
cpython-a1eac7218ba098746f611e6edcc8eb5b72bc89e7.tar.bz2
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.
Diffstat (limited to 'Objects/stringlib')
-rw-r--r--Objects/stringlib/string_format.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/Objects/stringlib/string_format.h b/Objects/stringlib/string_format.h
index 4053545..c1a6d1d 100644
--- a/Objects/stringlib/string_format.h
+++ b/Objects/stringlib/string_format.h
@@ -1192,6 +1192,11 @@ formatter_parser(PyObject *ignored, STRINGLIB_OBJECT *self)
{
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 @@ formatter_field_name_split(PyObject *ignored, STRINGLIB_OBJECT *self)
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;