[3.8] bpo-38913: Fix segfault in Py_BuildValue("(sGH-O)", ...) if entered with exception raised. (GH-18656). (GH-18732)
(cherry picked from commit 28d0bcac8b7e6dbd28311f1283dabb6a4d649fcb)
diff --git a/Python/modsupport.c b/Python/modsupport.c
index 6255822..7271af3 100644
--- a/Python/modsupport.c
+++ b/Python/modsupport.c
@@ -343,11 +343,11 @@
if (flags & FLAG_SIZE_T)
n = va_arg(*p_va, Py_ssize_t);
else {
+ n = va_arg(*p_va, int);
if (PyErr_WarnEx(PyExc_DeprecationWarning,
"PY_SSIZE_T_CLEAN will be required for '#' formats", 1)) {
return NULL;
}
- n = va_arg(*p_va, int);
}
}
else
@@ -396,11 +396,11 @@
if (flags & FLAG_SIZE_T)
n = va_arg(*p_va, Py_ssize_t);
else {
+ n = va_arg(*p_va, int);
if (PyErr_WarnEx(PyExc_DeprecationWarning,
"PY_SSIZE_T_CLEAN will be required for '#' formats", 1)) {
return NULL;
}
- n = va_arg(*p_va, int);
}
}
else
@@ -434,11 +434,11 @@
if (flags & FLAG_SIZE_T)
n = va_arg(*p_va, Py_ssize_t);
else {
+ n = va_arg(*p_va, int);
if (PyErr_WarnEx(PyExc_DeprecationWarning,
"PY_SSIZE_T_CLEAN will be required for '#' formats", 1)) {
return NULL;
}
- n = va_arg(*p_va, int);
}
}
else