From: Victor Stinner Date: Tue, 3 May 2011 13:06:11 +0000 (+0200) Subject: Issue #8651: Fix "z#" format of PyArg_Parse*() function: the size was not X-Git-Tag: v2.7.2rc1~83 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=645b9f67aef1f6c8921cf5f8bbe6db3fa94418bc;p=python Issue #8651: Fix "z#" format of PyArg_Parse*() function: the size was not written if PY_SSIZE_T_CLEAN is defined. --- diff --git a/Misc/NEWS b/Misc/NEWS index 50f6aaf526..e26b6ca316 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -9,6 +9,9 @@ What's New in Python 2.7.2? Core and Builtins ----------------- +- Issue #8651: Fix "z#" format of PyArg_Parse*() function: the size was not + written if PY_SSIZE_T_CLEAN is defined. + - Issue #9756: When calling a method descriptor or a slot wrapper descriptor, the check of the object type doesn't read the __class__ attribute anymore. Fix a crash if a class override its __class__ attribute (e.g. a proxy of the diff --git a/Python/getargs.c b/Python/getargs.c index 7c3e9fa384..02351ed6fa 100644 --- a/Python/getargs.c +++ b/Python/getargs.c @@ -984,10 +984,11 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags, if (*format == '#') { FETCH_SIZE; assert(0); /* XXX redundant with if-case */ - if (arg == Py_None) - *q = 0; - else - *q = PyString_Size(arg); + if (arg == Py_None) { + STORE_SIZE(0); + } else { + STORE_SIZE(PyString_Size(arg)); + } format++; } else if (*p != NULL &&