Commit dcb8a340 authored by Victor Stinner's avatar Victor Stinner

Issue #18408: Fix parser.sequence2st() and parser.tuple2st(): raise MemoryError

on memory allocation failure

Instead of ignoring the memory allocation failure and create invalid objects.
parent 8620c37f
......@@ -809,7 +809,12 @@ build_node_children(PyObject *tuple, node *root, int *line_num)
return 0;
}
strn = (char *)PyObject_MALLOC(len + 1);
if (strn != NULL)
if (strn == NULL) {
Py_DECREF(temp);
Py_XDECREF(elem);
PyErr_NoMemory();
return 0;
}
(void) memcpy(strn, temp_str, len + 1);
Py_DECREF(temp);
}
......@@ -906,7 +911,13 @@ build_node_tree(PyObject *tuple)
return NULL;
}
res->n_str = (char *)PyObject_MALLOC(len + 1);
if (res->n_str != NULL && temp != NULL)
if (res->n_str == NULL) {
Py_DECREF(res);
Py_DECREF(encoding);
Py_DECREF(tuple);
PyErr_NoMemory();
return NULL;
}
(void) memcpy(res->n_str, temp, len + 1);
Py_DECREF(encoding);
Py_DECREF(tuple);
......
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