From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Fri, 29 Nov 2024 10:52:21 +0000 (+0100) Subject: [3.13] gh-126881: fix finalization of dtoa state (GH-126904) (#127395) X-Git-Tag: v3.13.1~42 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=47b0f8f2972facc29ec33f1f0b353784ff94b709;p=thirdparty%2FPython%2Fcpython.git [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 --- 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 000000000000..13381c7630d7 --- /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 0cd4fb417636..8fe5bb8b3007 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);