From: Victor Stinner Date: Tue, 8 Jun 2010 21:45:51 +0000 (+0000) Subject: PyArg_Parse*("Z#") raises an error for unknown type X-Git-Tag: v3.2a1~592 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5216e6d598ce7bbc542f5e443073dbc03306c143;p=python PyArg_Parse*("Z#") raises an error for unknown type instead of ignoring the error and leave the pointer to the string and the size unchanged (not initialized). Fix also the type in the error message of "Z", "Z#" and "Y" formats. --- diff --git a/Python/getargs.c b/Python/getargs.c index b4b5db283c..31b9d35716 100644 --- a/Python/getargs.c +++ b/Python/getargs.c @@ -1051,6 +1051,8 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags, *p = PyUnicode_AS_UNICODE(arg); STORE_SIZE(PyUnicode_GET_SIZE(arg)); } + else + return converterr("str or None", arg, msgbuf, bufsize); format++; } else { Py_UNICODE **p = va_arg(*p_va, Py_UNICODE **); @@ -1060,8 +1062,7 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags, else if (PyUnicode_Check(arg)) *p = PyUnicode_AS_UNICODE(arg); else - return converterr("string or None", - arg, msgbuf, bufsize); + return converterr("str or None", arg, msgbuf, bufsize); } break; } @@ -1258,7 +1259,7 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags, if (PyByteArray_Check(arg)) *p = arg; else - return converterr("buffer", arg, msgbuf, bufsize); + return converterr("bytearray", arg, msgbuf, bufsize); break; }