aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Python/sysmodule.c
diff options
context:
space:
mode:
authorMark Shannon <mark@hotpy.org>2022-07-01 11:08:20 +0100
committerGitHub <noreply@github.com>2022-07-01 11:08:20 +0100
commit544531de23d69f5b23883794fc7bb23a958a0fcb (patch)
treead88c0a6543127cd89027843ab441aa29dbdbc75 /Python/sysmodule.c
parent1df9449db24f16c9c96bdd7dc283a5062bca68e6 (diff)
downloadcpython-544531de23d69f5b23883794fc7bb23a958a0fcb.tar.gz
cpython-544531de23d69f5b23883794fc7bb23a958a0fcb.zip
GH-94262: Don't create frame objects for frames that aren't yet complete. (GH-94371)
Diffstat (limited to 'Python/sysmodule.c')
-rw-r--r--Python/sysmodule.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/Python/sysmodule.c b/Python/sysmodule.c
index 444042f82d9..93120071b40 100644
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
@@ -1776,9 +1776,17 @@ sys__getframe_impl(PyObject *module, int depth)
return NULL;
}
- while (depth > 0 && frame != NULL) {
- frame = frame->previous;
- --depth;
+ if (frame != NULL) {
+ while (depth > 0) {
+ frame = frame->previous;
+ if (frame == NULL) {
+ break;
+ }
+ if (_PyFrame_IsIncomplete(frame)) {
+ continue;
+ }
+ --depth;
+ }
}
if (frame == NULL) {
_PyErr_SetString(tstate, PyExc_ValueError,