summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Misc/NEWS3
-rw-r--r--Python/getargs.c9
2 files changed, 8 insertions, 4 deletions
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 &&