diff options
author | Eric Smith <eric@trueblade.com> | 2011-01-29 11:15:35 (GMT) |
---|---|---|
committer | Eric Smith <eric@trueblade.com> | 2011-01-29 11:15:35 (GMT) |
commit | a1eac7218ba098746f611e6edcc8eb5b72bc89e7 (patch) | |
tree | 42bf80d38427745f774cb50131d8553817d36c8e /Objects/stringlib | |
parent | 08d4293013947f79b9f6587514a918763f326b7d (diff) | |
download | cpython-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.h | 10 |
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; |