]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
[3.13] gh-132835: Add defensive NULL checks to MRO resolution (GH-134763) (GH-140437)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Wed, 22 Oct 2025 03:44:42 +0000 (05:44 +0200)
committerGitHub <noreply@github.com>
Wed, 22 Oct 2025 03:44:42 +0000 (20:44 -0700)
commit30c2661b6e2b738b957aedcc328bb641b0b61787
tree9c64ab6f8a4beb125fdb325b3edf3e559c9abd29
parent69230d1c561579087e47da8b98bb0f0ba54d7b21
[3.13] gh-132835: Add defensive NULL checks to MRO resolution (GH-134763) (GH-140437)

Currently, there are a few places where tp_mro could theoretically
become NULL, but do not in practice. This commit adds defensive checks for
NULL values to ensure that any changes do not introduce a crash and that
state invariants are upheld.

The assertions added in this commit are all instances where a NULL value would get passed to something not expecting a NULL, so it is better to catch an assertion failure than crash later on.

There are a few cases where it is OK for the return of lookup_tp_mro to be NULL, such as when passed to is_subtype_with_mro, which handles this explicitly.
(cherry picked from commit a8edca62fc6d44d16c7f86d49421be1a5ebea3e5)

Co-authored-by: Emma Smith <emma@emmatyping.dev>
Objects/typeobject.c