From 943395fab925a11ea90d078e771cdfc4443e8c34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Wirtel?= Date: Tue, 19 Mar 2019 11:51:32 +0100 Subject: [PATCH] bpo-36333: Fix leak _PyRuntimeState_Fini (GH-12400) --- .../2019-03-18-10-56-53.bpo-36333.4dqemZ.rst | 1 + Python/pystate.c | 5 +++++ 2 files changed, 6 insertions(+) create mode 100644 Misc/NEWS.d/next/Core and Builtins/2019-03-18-10-56-53.bpo-36333.4dqemZ.rst diff --git a/Misc/NEWS.d/next/Core and Builtins/2019-03-18-10-56-53.bpo-36333.4dqemZ.rst b/Misc/NEWS.d/next/Core and Builtins/2019-03-18-10-56-53.bpo-36333.4dqemZ.rst new file mode 100644 index 00000000000..e5af44fda40 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2019-03-18-10-56-53.bpo-36333.4dqemZ.rst @@ -0,0 +1 @@ +Fix leak in _PyRuntimeState_Fini. Contributed by Stéphane Wirtel. diff --git a/Python/pystate.c b/Python/pystate.c index 6a2dc102ecf..36566b76715 100644 --- a/Python/pystate.c +++ b/Python/pystate.c @@ -92,6 +92,11 @@ _PyRuntimeState_Fini(_PyRuntimeState *runtime) runtime->interpreters.mutex = NULL; } + if (runtime->xidregistry.mutex != NULL) { + PyThread_free_lock(runtime->xidregistry.mutex); + runtime->xidregistry.mutex = NULL; + } + PyMem_SetAllocator(PYMEM_DOMAIN_RAW, &old_alloc); }