closes bpo-41533: Fix a potential memory leak when allocating a stack (GH-21847)

Free the stack allocated in va_build_stack if do_mkstack fails
and the stack is not a small_stack
This commit is contained in:
Tony Solomonik 2020-08-30 07:53:08 +03:00 committed by GitHub
parent c68c5af2dc
commit 75c80b0bda
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 0 deletions

View File

@ -0,0 +1,2 @@
Free the stack allocated in ``va_build_stack`` if ``do_mkstack`` fails and
the stack is not a ``small_stack``.

View File

@ -622,6 +622,9 @@ va_build_stack(PyObject **small_stack, Py_ssize_t small_stack_len,
va_end(lva); va_end(lva);
if (res < 0) { if (res < 0) {
if (stack != small_stack) {
PyMem_Free(stack);
}
return NULL; return NULL;
} }