]> granicus.if.org Git - python/commitdiff
Issue #18408: _pickle.c: Add missing PyErr_NoMemory() on memory allocation failures
authorVictor Stinner <victor.stinner@gmail.com>
Thu, 11 Jul 2013 22:53:57 +0000 (00:53 +0200)
committerVictor Stinner <victor.stinner@gmail.com>
Thu, 11 Jul 2013 22:53:57 +0000 (00:53 +0200)
Modules/_pickle.c

index 888a498d30a21dacff954cfe48a85b7019ee399c..e7d7dd95ac06ca5d9d2dd8363027994511aeff16 100644 (file)
@@ -436,6 +436,7 @@ PyMemoTable_Copy(PyMemoTable *self)
     new->mt_table = PyMem_MALLOC(self->mt_allocated * sizeof(PyMemoEntry));
     if (new->mt_table == NULL) {
         PyMem_FREE(new);
+        PyErr_NoMemory();
         return NULL;
     }
     for (i = 0; i < self->mt_allocated; i++) {
@@ -1003,8 +1004,10 @@ _Unpickler_CopyLine(UnpicklerObject *self, char *line, Py_ssize_t len,
                     char **result)
 {
     char *input_line = PyMem_Realloc(self->input_line, len + 1);
-    if (input_line == NULL)
+    if (input_line == NULL) {
+        PyErr_NoMemory();
         return -1;
+    }
 
     memcpy(input_line, line, len);
     input_line[len] = '\0';
@@ -1101,8 +1104,10 @@ static PyObject **
 _Unpickler_NewMemo(Py_ssize_t new_size)
 {
     PyObject **memo = PyMem_MALLOC(new_size * sizeof(PyObject *));
-    if (memo == NULL)
+    if (memo == NULL) {
+        PyErr_NoMemory();
         return NULL;
+    }
     memset(memo, 0, new_size * sizeof(PyObject *));
     return memo;
 }