8000 Merge pull request #20683 from meeseeksmachine/auto-backport-of-pr-20… · matplotlib/matplotlib@d5de944 · GitHub
[go: up one dir, main page]

Skip to content

Commit d5de944

Browse files
authored
Merge pull request #20683 from meeseeksmachine/auto-backport-of-pr-20645-on-v3.4.x
Backport PR #20645 on branch v3.4.x (Fix leak if affine_transform is passed invalid vertices.)
2 parents a518b74 + cce1048 commit d5de944

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

472472
if (PyArray_NDIM(vertices_arr) == 2) {
473473
numpy::array_view<double, 2> vertices(vertices_arr);
474+
Py_DECREF(vertices_arr);
475+
474476
npy_intp dims[] = { (npy_intp)vertices.size(), 2 };
475477
numpy::array_view<double, 2> result(dims);
476478
CALL_CPP("affine_transform", (affine_transform_2d(vertices, trans, result)));
477-
Py_DECREF(vertices_arr);
478479
return result.pyobj();
479480
} else { // PyArray_NDIM(vertices_arr) == 1
480481
numpy::array_view<double, 1> vertices(vertices_arr);
482+
Py_DECREF(vertices_arr);
483+
481484
npy_intp dims[] = { (npy_intp)vertices.size() };
482485
numpy::array_view<double, 1> result(dims);
483486
CALL_CPP("affine_transform", (affine_transform_1d(vertices, trans, result)));
484-
Py_DECREF(vertices_arr);
485487
return result.pyobj();
486488
}
487489
}

0 commit comments

Comments
 (0)
0