]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Close #19578: Fix list_ass_subscript(), handle list_resize() failure
authorVictor Stinner <victor.stinner@gmail.com>
Thu, 21 Nov 2013 11:16:35 +0000 (12:16 +0100)
committerVictor Stinner <victor.stinner@gmail.com>
Thu, 21 Nov 2013 11:16:35 +0000 (12:16 +0100)
Notify the caller of the failure (MemoryError exception).

Objects/listobject.c

index 7d5674c9f48d35710067e5a545d4465e150dcbe4..5b75968fb3873c607c037ce05b713b487832a15e 100644 (file)
@@ -2483,6 +2483,7 @@ list_ass_subscript(PyListObject* self, PyObject* item, PyObject* value)
             PyObject **garbage;
             size_t cur;
             Py_ssize_t i;
+            int res;
 
             if (slicelength <= 0)
                 return 0;
@@ -2533,14 +2534,14 @@ list_ass_subscript(PyListObject* self, PyObject* item, PyObject* value)
             }
 
             Py_SIZE(self) -= slicelength;
-            list_resize(self, Py_SIZE(self));
+            res = list_resize(self, Py_SIZE(self));
 
             for (i = 0; i < slicelength; i++) {
                 Py_DECREF(garbage[i]);
             }
             PyMem_FREE(garbage);
 
-            return 0;
+            return res;
         }
         else {
             /* assign slice */