summaryrefslogtreecommitdiffstats
path: root/Modules/itertoolsmodule.c
diff options
context:
space:
mode:
Diffstat (limited to 'Modules/itertoolsmodule.c')
-rw-r--r--Modules/itertoolsmodule.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/Modules/itertoolsmodule.c b/Modules/itertoolsmodule.c
index f42232d..fefcbfb 100644
--- a/Modules/itertoolsmodule.c
+++ b/Modules/itertoolsmodule.c
@@ -745,8 +745,10 @@ cycle_next(cycleobject *lz)
while (1) {
item = PyIter_Next(lz->it);
if (item != NULL) {
- if (!lz->firstpass)
- PyList_Append(lz->saved, item);
+ if (!lz->firstpass && PyList_Append(lz->saved, item)) {
+ Py_DECREF(item);
+ return NULL;
+ }
return item;
}
if (PyErr_Occurred()) {