From b27cd3e5ad9e3da24cdce7f498fa64d2994788a0 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Mon, 8 Jul 2013 22:20:44 +0200 Subject: [PATCH] Issue #18408: Fix list.pop() to handle list_resize() failure (MemoryError). --- Objects/listobject.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Objects/listobject.c b/Objects/listobject.c index 0c82cc40eca..b18ef5763af 100644 --- a/Objects/listobject.c +++ b/Objects/listobject.c @@ -925,8 +925,10 @@ listpop(PyListObject *self, PyObject *args) v = self->ob_item[i]; if (i == Py_SIZE(self) - 1) { status = list_resize(self, Py_SIZE(self) - 1); - assert(status >= 0); - return v; /* and v now owns the reference the list had */ + if (status >= 0) + return v; /* and v now owns the reference the list had */ + else + return NULL; } Py_INCREF(v); status = list_ass_slice(self, i, i+1, (PyObject *)NULL);