From 520403ed4cdf4890d63403c9cf01ac63233f5ef4 Mon Sep 17 00:00:00 2001 From: Sam Gross Date: Tue, 20 Feb 2024 15:18:44 -0500 Subject: gh-115733: Fix crash involving exhausted list iterator (#115740) * gh-115733: Fix crash involving exhausted iterator * Add blurb --- Python/bytecodes.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'Python/bytecodes.c') diff --git a/Python/bytecodes.c b/Python/bytecodes.c index 9d790a9d3e6..5835b80582b 100644 --- a/Python/bytecodes.c +++ b/Python/bytecodes.c @@ -2612,7 +2612,7 @@ dummy_func( assert(Py_TYPE(iter) == &PyListIter_Type); STAT_INC(FOR_ITER, hit); PyListObject *seq = it->it_seq; - if ((size_t)it->it_index >= (size_t)PyList_GET_SIZE(seq)) { + if (seq == NULL || (size_t)it->it_index >= (size_t)PyList_GET_SIZE(seq)) { it->it_index = -1; #ifndef Py_GIL_DISABLED if (seq != NULL) { @@ -2633,6 +2633,7 @@ dummy_func( _PyListIterObject *it = (_PyListIterObject *)iter; assert(Py_TYPE(iter) == &PyListIter_Type); PyListObject *seq = it->it_seq; + DEOPT_IF(seq == NULL); DEOPT_IF((size_t)it->it_index >= (size_t)PyList_GET_SIZE(seq)); } -- cgit v1.2.3