bpo-38913: Fix segfault in Py_BuildValue("(s#O)", ...) if entered with exception raised. (GH-18656)

This commit is contained in:
Serhiy Storchaka 2020-03-02 08:42:39 +02:00 committed by GitHub
parent 2565edec2c
commit 28d0bcac8b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 48 additions and 3 deletions

View file

@ -343,11 +343,11 @@ do_mkvalue(const char **p_format, va_list *p_va, int flags)
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 @@ do_mkvalue(const char **p_format, va_list *p_va, int flags)
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 @@ do_mkvalue(const char **p_format, va_list *p_va, int flags)
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