diff --git a/src/_imagingft.c b/src/_imagingft.c index f6bd787ef..964ed6ab1 100644 --- a/src/_imagingft.c +++ b/src/_imagingft.c @@ -1006,6 +1006,9 @@ font_render(FontObject* self, PyObject* args) num_coords = PyObject_Length(axes); coords = malloc(2 * sizeof(coords)); + if (coords == NULL) { + return PyErr_NoMemory(); + } for (i = 0; i < num_coords; i++) { item = PyList_GET_ITEM(axes, i); if (PyFloat_Check(item)) @@ -1015,6 +1018,7 @@ font_render(FontObject* self, PyObject* args) else if (PyNumber_Check(item)) coord = PyFloat_AsDouble(item); else { + free(coords); PyErr_SetString(PyExc_TypeError, "list must contain numbers"); return NULL; } @@ -1022,6 +1026,7 @@ font_render(FontObject* self, PyObject* args) } error = FT_Set_Var_Design_Coordinates(self->face, num_coords, coords); + free(coords); if (error) return geterror(error);