Skip to content

Commit b6d454a

Browse files
committed
check result of PyMem_Malloc
1 parent 223d650 commit b6d454a

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

Modules/_operator.c

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1661,9 +1661,13 @@ methodcaller_vectorcall(
16611661
}
16621662

16631663
assert(mc->vectorcall_args != 0);
1664-
number_of_arguments++;
1665-
PyObject **tmp_args = (PyObject **) PyMem_Malloc(number_of_arguments * sizeof(PyObject *));
1666-
memcpy(tmp_args, mc->vectorcall_args, sizeof(PyObject *) * number_of_arguments );
1664+
size_t buffer_size = sizeof(PyObject *) * (number_of_arguments + 1);
1665+
PyObject **tmp_args = (PyObject **) PyMem_Malloc buffer_size);
1666+
if (tmp_args == NULL) {
1667+
PyErr_NoMemory();
1668+
return -1;
1669+
}
1670+
memcpy(tmp_args, mc->vectorcall_args, buffer_size);
16671671
tmp_args[0] = args[0];
16681672
return PyObject_VectorcallMethod(
16691673
mc->name, tmp_args,

0 commit comments

Comments
 (0)