]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
[3.12] gh-108487: Change assert that should've been DEOPT_IF (#108509)
authorGuido van Rossum <guido@python.org>
Sat, 26 Aug 2023 23:22:40 +0000 (16:22 -0700)
committerGitHub <noreply@github.com>
Sat, 26 Aug 2023 23:22:40 +0000 (01:22 +0200)
commitbbdd8895a5aced4cd4e66a5c6e3471636f28df6b
treec0c172d6ce0fe61d0272f853c8b1764d0f8437b3
parent208741cc3098c905914ecdc1110bfd805d4bb874
[3.12] gh-108487: Change assert that should've been DEOPT_IF (#108509)

* Remove assert that should've been DEOPT_IF

The assert(method != NULL) in CALL_NO_KW_LIST_APPEND is wrong --
this condition should lead to a deoptimization, and indeed there
is a DEOPT_IF two lines later that will trigger if method == NULL.

This would crash in a devious repro scenario (first seen live
in boto3 tests) when compiled with assertions enabled.
In a production version there is no crash, so impact is limited.

(The crash also appears in main; I will prepare a separate PR.)

* Add back a different assert(self != NULL)

* ðŸ“œðŸ¤– Added by blurb_it.

---------

Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Misc/NEWS.d/next/Core and Builtins/2023-08-26-04-33-18.gh-issue-108487.aUFxqf.rst [new file with mode: 0644]
Python/bytecodes.c
Python/generated_cases.c.h