]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
bpo-46417: Fix race condition on setting type __bases__ (GH-30788) (GH-30789)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Sat, 22 Jan 2022 14:28:36 +0000 (06:28 -0800)
committerGitHub <noreply@github.com>
Sat, 22 Jan 2022 14:28:36 +0000 (15:28 +0100)
commitacda9f3b90c33e4020237cb9e5c676efb38f7847
treeb4654f7a79ca37972c4472869c3adfa9344b30ac
parent6111d5dee2b24916ff95dba56efc569396a31851
bpo-46417: Fix race condition on setting type __bases__ (GH-30788) (GH-30789)

Fix a race condition on setting a type __bases__ attribute: the
internal function add_subclass() now gets the
PyTypeObject.tp_subclasses member after calling PyWeakref_NewRef()
which can trigger a garbage collection which can indirectly modify
PyTypeObject.tp_subclasses.
(cherry picked from commit f1c6ae3270913e095d24ae13ecf96f5a32c8c503)

Co-authored-by: Victor Stinner <vstinner@python.org>
Co-authored-by: Victor Stinner <vstinner@python.org>
Misc/NEWS.d/next/Core and Builtins/2022-01-22-14-39-23.bpo-46417.3U5SfN.rst [new file with mode: 0644]
Objects/typeobject.c