]> granicus.if.org Git - python/commitdiff
prevent a rather unlikely segfault
authorBenjamin Peterson <benjamin@python.org>
Mon, 2 Nov 2009 15:06:45 +0000 (15:06 +0000)
committerBenjamin Peterson <benjamin@python.org>
Mon, 2 Nov 2009 15:06:45 +0000 (15:06 +0000)
Objects/listobject.c

index c5b147580292c55ccca97509d3f0b23482c3303c..39b8b1a882c2f2e7aa975580f7604001781de33c 100644 (file)
@@ -183,9 +183,12 @@ PyList_GetItem(PyObject *op, Py_ssize_t i)
                return NULL;
        }
        if (i < 0 || i >= Py_SIZE(op)) {
-               if (indexerr == NULL)
+               if (indexerr == NULL) {
                        indexerr = PyString_FromString(
                                "list index out of range");
+                       if (indexerr == NULL)
+                               return NULL;
+               }
                PyErr_SetObject(PyExc_IndexError, indexerr);
                return NULL;
        }
@@ -447,9 +450,12 @@ static PyObject *
 list_item(PyListObject *a, Py_ssize_t i)
 {
        if (i < 0 || i >= Py_SIZE(a)) {
-               if (indexerr == NULL)
+               if (indexerr == NULL) {
                        indexerr = PyString_FromString(
                                "list index out of range");
+                       if (indexerr == NULL)
+                               return NULL;
+               }
                PyErr_SetObject(PyExc_IndexError, indexerr);
                return NULL;
        }