diff options
author | Brandt Bucher <brandtbucher@microsoft.com> | 2024-01-04 11:14:15 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-04 11:14:15 (GMT) |
commit | 35ef8cb25917bfd6cbbd7c2bb55dd4f82131c9cf (patch) | |
tree | 9d24a2320bdc98d8038ad1bdb670a145049684a1 | |
parent | 4c4b08dd2bd5f2cad4e41bf29119a3daa2956f6e (diff) | |
download | cpython-35ef8cb25917bfd6cbbd7c2bb55dd4f82131c9cf.zip cpython-35ef8cb25917bfd6cbbd7c2bb55dd4f82131c9cf.tar.gz cpython-35ef8cb25917bfd6cbbd7c2bb55dd4f82131c9cf.tar.bz2 |
GH-113689: Fix broken handling of invalid executors (GH-113694)
-rw-r--r-- | Python/bytecodes.c | 3 | ||||
-rw-r--r-- | Python/generated_cases.c.h | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/Python/bytecodes.c b/Python/bytecodes.c index 2eeeac5..e1a6a25 100644 --- a/Python/bytecodes.c +++ b/Python/bytecodes.c @@ -2378,11 +2378,12 @@ dummy_func( stack_pointer = _PyFrame_GetStackPointer(frame); } else { + code->co_executors->executors[oparg & 255] = NULL; opcode = this_instr->op.code = executor->vm_data.opcode; this_instr->op.arg = executor->vm_data.oparg; oparg = (oparg & (~255)) | executor->vm_data.oparg; - code->co_executors->executors[oparg&255] = NULL; Py_DECREF(executor); + next_instr = this_instr; DISPATCH_GOTO(); } } diff --git a/Python/generated_cases.c.h b/Python/generated_cases.c.h index 99fd169..8226d82 100644 --- a/Python/generated_cases.c.h +++ b/Python/generated_cases.c.h @@ -2392,11 +2392,12 @@ stack_pointer = _PyFrame_GetStackPointer(frame); } else { + code->co_executors->executors[oparg & 255] = NULL; opcode = this_instr->op.code = executor->vm_data.opcode; this_instr->op.arg = executor->vm_data.oparg; oparg = (oparg & (~255)) | executor->vm_data.oparg; - code->co_executors->executors[oparg&255] = NULL; Py_DECREF(executor); + next_instr = this_instr; DISPATCH_GOTO(); } DISPATCH(); |