From: Christian Heimes Date: Fri, 1 Apr 2022 08:44:56 +0000 (+0300) Subject: [3.10] bpo-47182: Fix crash by named unicode characters after interpreter reinitializ... X-Git-Tag: v3.10.5~220 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=55d5c96c57738766eb6f3b5ccfa6599d5f094c18;p=thirdparty%2FPython%2Fcpython.git [3.10] bpo-47182: Fix crash by named unicode characters after interpreter reinitialization (GH-32212) (GH-32216) Co-authored-by: Christian Heimes --- diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-03-31-15-37-02.bpo-47182.e_4SsC.rst b/Misc/NEWS.d/next/Core and Builtins/2022-03-31-15-37-02.bpo-47182.e_4SsC.rst new file mode 100644 index 000000000000..08036bc68093 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-03-31-15-37-02.bpo-47182.e_4SsC.rst @@ -0,0 +1,2 @@ +Fix a crash when using a named unicode character like ``"\N{digit nine}"`` +after the main interpreter has been initialized a second time. diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 077cf8d7f456..377fa6c8e2a2 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -16352,6 +16352,9 @@ _PyUnicode_Fini(PyInterpreterState *interp) if (_Py_IsMainInterpreter(interp)) { // _PyUnicode_ClearInterned() must be called before _PyUnicode_Fini() assert(interned == NULL); + // bpo-47182: force a unicodedata CAPI capsule re-import on + // subsequent initialization of main interpreter. + ucnhash_capi = NULL; } _PyUnicode_FiniEncodings(&state->fs_codec);