diff options
author | Gregory Szorc <gregory.szorc@gmail.com> | 2020-05-01 18:07:54 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-01 18:07:54 (GMT) |
commit | 64224a4727321a8dd33e6f769edda401193ebef0 (patch) | |
tree | 92a3bab10fdd5f9b75cae94339917f9d78b32bac /Python/import.c | |
parent | 831d58d7865cb98fa09227dc614f4f3ce6af968b (diff) | |
download | cpython-64224a4727321a8dd33e6f769edda401193ebef0.zip cpython-64224a4727321a8dd33e6f769edda401193ebef0.tar.gz cpython-64224a4727321a8dd33e6f769edda401193ebef0.tar.bz2 |
bpo-40412: Nullify inittab_copy during finalization (GH-19746)
Otherwise we leave a dangling pointer to free'd memory. If we
then initialize a new interpreter in the same process and call
PyImport_ExtendInittab, we will (likely) crash when calling
PyMem_RawRealloc(inittab_copy, ...) since the pointer address
is bogus.
Automerge-Triggered-By: @brettcannon
Diffstat (limited to 'Python/import.c')
-rw-r--r-- | Python/import.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/Python/import.c b/Python/import.c index 8c94e0e..400b02a 100644 --- a/Python/import.c +++ b/Python/import.c @@ -298,6 +298,7 @@ _PyImport_Fini2(void) /* Free memory allocated by PyImport_ExtendInittab() */ PyMem_RawFree(inittab_copy); + inittab_copy = NULL; PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc); } |