From 47b0f8f2972facc29ec33f1f0b353784ff94b709 Mon Sep 17 00:00:00 2001 From: "Miss Islington (bot)" <31488909+miss-islington@users.noreply.github.com> Date: Fri, 29 Nov 2024 11:52:21 +0100 Subject: [PATCH] [3.13] gh-126881: fix finalization of dtoa state (GH-126904) (#127395) gh-126881: fix finalization of dtoa state (GH-126904) (cherry picked from commit 762c603a866146afc7db2591fb49605e0858e9b1) Co-authored-by: Kumar Aditya --- .../2024-11-16-11-11-35.gh-issue-126881.ijofLZ.rst | 1 + Python/pylifecycle.c | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 Misc/NEWS.d/next/Core_and_Builtins/2024-11-16-11-11-35.gh-issue-126881.ijofLZ.rst diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2024-11-16-11-11-35.gh-issue-126881.ijofLZ.rst b/Misc/NEWS.d/next/Core_and_Builtins/2024-11-16-11-11-35.gh-issue-126881.ijofLZ.rst new file mode 100644 index 00000000000..13381c7630d --- /dev/null +++ b/Misc/NEWS.d/next/Core_and_Builtins/2024-11-16-11-11-35.gh-issue-126881.ijofLZ.rst @@ -0,0 +1 @@ +Fix crash in finalization of dtoa state. Patch by Kumar Aditya. diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c index 0cd4fb41763..8fe5bb8b300 100644 --- a/Python/pylifecycle.c +++ b/Python/pylifecycle.c @@ -1869,7 +1869,6 @@ finalize_interp_clear(PyThreadState *tstate) _PyXI_Fini(tstate->interp); _PyExc_ClearExceptionGroupType(tstate->interp); _Py_clear_generic_types(tstate->interp); - _PyDtoa_Fini(tstate->interp); /* Clear interpreter state and all thread states */ _PyInterpreterState_Clear(tstate); @@ -1891,6 +1890,9 @@ finalize_interp_clear(PyThreadState *tstate) finalize_interp_types(tstate->interp); + /* Finalize dtoa at last so that finalizers calling repr of float doesn't crash */ + _PyDtoa_Fini(tstate->interp); + /* Free any delayed free requests immediately */ _PyMem_FiniDelayed(tstate->interp);