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

Skip to content

Commit 246a489

Browse files
authored
Merge pull request #20645 from QuLogic/fix-path-affine-leak
Fix leak if affine_transform is passed invalid vertices.
2 parents 739252b + 8c0d73e commit 246a489

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
@@ -453,17 +453,19 @@ static PyObject *Py_affine_transform(PyObject *self, PyObject *args, PyObject *k
453453

454454
if (PyArray_NDIM(vertices_arr) == 2) {
455455
numpy::array_view<double, 2> vertices(vertices_arr);
456+
Py_DECREF(vertices_arr);
457+
456458
npy_intp dims[] = { (npy_intp)vertices.size(), 2 };
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);
464+
Py_DECREF(vertices_arr);
465+
463466
npy_intp dims[] = { (npy_intp)vertices.size() };
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)