From: Erlend E. Aasland Date: Sat, 11 Feb 2023 08:30:42 +0000 (+0100) Subject: [3.11] GH-101696: invalidate type version tag in `_PyStaticType_Dealloc` (GH-101697... X-Git-Tag: v3.11.3~150 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c5c12381b38494ebc2346bb01d3426160e068d35;p=thirdparty%2FPython%2Fcpython.git [3.11] GH-101696: invalidate type version tag in `_PyStaticType_Dealloc` (GH-101697) (#101722) [3.11] GH-101696: invalidate type version tag in `_PyStaticType_Dealloc` (GH-101697). (cherry picked from commit d9de0792482d2ded364b0c7d2867b97a5da41b12) Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com> --- diff --git a/Misc/NEWS.d/next/Core and Builtins/2023-02-08-17-13-31.gh-issue-101696.seJhTt.rst b/Misc/NEWS.d/next/Core and Builtins/2023-02-08-17-13-31.gh-issue-101696.seJhTt.rst new file mode 100644 index 000000000000..ff2bbb4b5642 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2023-02-08-17-13-31.gh-issue-101696.seJhTt.rst @@ -0,0 +1 @@ +Invalidate type version tag in ``_PyStaticType_Dealloc`` for static types, avoiding bug where a false cache hit could crash the interpreter. Patch by Kumar Aditya. diff --git a/Objects/typeobject.c b/Objects/typeobject.c index 9ee57105204e..90c6425ffdfe 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -4080,6 +4080,8 @@ _PyStaticType_Dealloc(PyTypeObject *type) } type->tp_flags &= ~Py_TPFLAGS_READY; + type->tp_flags &= ~Py_TPFLAGS_VALID_VERSION_TAG; + type->tp_version_tag = 0; }