Commit 8620c37f authored by Victor Stinner's avatar Victor Stinner

Issue #18408: _pickle.c: Add missing PyErr_NoMemory() on memory allocation failures

parent 50707f39
...@@ -436,6 +436,7 @@ PyMemoTable_Copy(PyMemoTable *self) ...@@ -436,6 +436,7 @@ PyMemoTable_Copy(PyMemoTable *self)
new->mt_table = PyMem_MALLOC(self->mt_allocated * sizeof(PyMemoEntry)); new->mt_table = PyMem_MALLOC(self->mt_allocated * sizeof(PyMemoEntry));
if (new->mt_table == NULL) { if (new->mt_table == NULL) {
PyMem_FREE(new); PyMem_FREE(new);
PyErr_NoMemory();
return NULL; return NULL;
} }
for (i = 0; i < self->mt_allocated; i++) { for (i = 0; i < self->mt_allocated; i++) {
...@@ -1003,8 +1004,10 @@ _Unpickler_CopyLine(UnpicklerObject *self, char *line, Py_ssize_t len, ...@@ -1003,8 +1004,10 @@ _Unpickler_CopyLine(UnpicklerObject *self, char *line, Py_ssize_t len,
char **result) char **result)
{ {
char *input_line = PyMem_Realloc(self->input_line, len + 1); char *input_line = PyMem_Realloc(self->input_line, len + 1);
if (input_line == NULL) if (input_line == NULL) {
PyErr_NoMemory();
return -1; return -1;
}
memcpy(input_line, line, len); memcpy(input_line, line, len);
input_line[len] = '\0'; input_line[len] = '\0';
...@@ -1101,8 +1104,10 @@ static PyObject ** ...@@ -1101,8 +1104,10 @@ static PyObject **
_Unpickler_NewMemo(Py_ssize_t new_size) _Unpickler_NewMemo(Py_ssize_t new_size)
{ {
PyObject **memo = PyMem_MALLOC(new_size * sizeof(PyObject *)); PyObject **memo = PyMem_MALLOC(new_size * sizeof(PyObject *));
if (memo == NULL) if (memo == NULL) {
PyErr_NoMemory();
return NULL; return NULL;
}
memset(memo, 0, new_size * sizeof(PyObject *)); memset(memo, 0, new_size * sizeof(PyObject *));
return memo; return memo;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment