diff options
author | Benjamin Peterson <benjamin@python.org> | 2013-12-28 10:33:58 -0600 |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2013-12-28 10:33:58 -0600 |
commit | 22d9ee7e177bb0fcb514e898daaec98907ebde0c (patch) | |
tree | 054e2d5107f7c9a230c723ac130e32b5e1ed0602 /Parser | |
parent | 63cc99d9a6cf4751bd75b6bc32416fdb3a98440b (diff) | |
download | cpython-git-22d9ee7e177bb0fcb514e898daaec98907ebde0c.tar.gz |
complain if the codec doesn't return unicode
Diffstat (limited to 'Parser')
-rw-r--r-- | Parser/tokenizer.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c index 46cf9b297c..249bb96206 100644 --- a/Parser/tokenizer.c +++ b/Parser/tokenizer.c @@ -400,6 +400,12 @@ fp_readl(char *s, int size, struct tok_state *tok) buf = PyObject_CallObject(tok->decoding_readline, NULL); if (buf == NULL) return error_ret(tok); + if (!PyUnicode_Check(buf)) { + Py_DECREF(buf); + PyErr_SetString(PyExc_SyntaxError, + "codec did not return a unicode object"); + return error_ret(tok); + } } else { tok->decoding_buffer = NULL; if (PyString_CheckExact(buf)) |