]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
bpo-41909: Enable previously disabled recursion checks. (GH-22536)
authorSerhiy Storchaka <storchaka@gmail.com>
Sun, 4 Oct 2020 21:55:57 +0000 (00:55 +0300)
committerGitHub <noreply@github.com>
Sun, 4 Oct 2020 21:55:57 +0000 (00:55 +0300)
commit9ece9cd65cdeb0a1f6e60475bbd0219161c348ac
tree0ed869df28102785bfbb38ae7178aac48c1672bb
parent619f98045d73859688e5cfdb946d183e6d493a64
bpo-41909: Enable previously disabled recursion checks. (GH-22536)

Enable recursion checks which were disabled when get __bases__ of
non-type objects in issubclass() and isinstance() and when intern
strings. It fixes a stack overflow when getting __bases__ leads
to infinite recursion.

Originally recursion checks was disabled for PyDict_GetItem() which
silences all errors including the one raised in case of detected
recursion and can return incorrect result. But now the code uses
PyDict_GetItemWithError() and PyDict_SetDefault() instead.
Lib/test/test_isinstance.py
Misc/NEWS.d/next/Core and Builtins/2020-10-04-10-55-12.bpo-41909.BqHPcm.rst [new file with mode: 0644]
Objects/abstract.c
Objects/unicodeobject.c