Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit eab7f55

Browse files
committed
Fix leak if affine_transform is passed invalid vertices.
1 parent dba02be commit eab7f55

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/_path_wrapper.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -454,16 +454,18 @@ static PyObject *Py_affine_transform(PyObject *self, PyObject *args, PyObject *k
454454
if (PyArray_NDIM(vertices_arr) == 2) {
455455
numpy::array_view<double, 2> vertices(vertices_arr);
456456
npy_intp dims[] = { (npy_intp)vertices.size(), 2 };
457+
Py_DECREF(vertices_arr);
458+
457459
numpy::array_view<double, 2> result(dims);
458460
CALL_CPP("affine_transform", (affine_transform_2d(vertices, trans, result)));
459-
Py_DECREF(vertices_arr);
460461
return result.pyobj();
461462
} else { // PyArray_NDIM(vertices_arr) == 1
462463
numpy::array_view<double, 1> vertices(vertices_arr);
463464
npy_intp dims[] = { (npy_intp)vertices.size() };
465+
Py_DECREF(vertices_arr);
466+
464467
numpy::array_view<double, 1> result(dims);
465468
CALL_CPP("affine_transform", (affine_transform_1d(vertices, trans, result)));
466-
Py_DECREF(vertices_arr);
467469
return result.pyobj();
468470
}
469471
}

0 commit comments

Comments
 (0)