]> granicus.if.org Git - python/commitdiff
PyList_Append() can fail
authorBenjamin Peterson <benjamin@python.org>
Mon, 16 Feb 2009 21:23:04 +0000 (21:23 +0000)
committerBenjamin Peterson <benjamin@python.org>
Mon, 16 Feb 2009 21:23:04 +0000 (21:23 +0000)
Modules/itertoolsmodule.c

index f42232db69922c97642bfb24d7efc6ad6d21f3ac..fefcbfb230e65493f3301c8612369831dc142877 100644 (file)
@@ -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()) {