diff -r feed6d2097b1 Objects/listobject.c --- a/Objects/listobject.c Wed Sep 14 15:19:42 2011 +0200 +++ b/Objects/listobject.c Thu Sep 15 19:27:36 2011 +0200 @@ -551,9 +551,9 @@ PyObject *elem; if (n < 0) n = 0; + if (Py_SIZE(a) > 0 && n > PY_SSIZE_T_MAX/Py_SIZE(a)) + return PyErr_NoMemory(); size = Py_SIZE(a) * n; - if (n && size/n != Py_SIZE(a)) - return PyErr_NoMemory(); if (size == 0) return PyList_New(0); np = (PyListObject *) PyList_New(size);