summaryrefslogtreecommitdiff
path: root/Parser
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2013-12-28 10:33:58 -0600
committerBenjamin Peterson <benjamin@python.org>2013-12-28 10:33:58 -0600
commit22d9ee7e177bb0fcb514e898daaec98907ebde0c (patch)
tree054e2d5107f7c9a230c723ac130e32b5e1ed0602 /Parser
parent63cc99d9a6cf4751bd75b6bc32416fdb3a98440b (diff)
downloadcpython-git-22d9ee7e177bb0fcb514e898daaec98907ebde0c.tar.gz
complain if the codec doesn't return unicode
Diffstat (limited to 'Parser')
-rw-r--r--Parser/tokenizer.c6
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))