Content-Length: 269473 | pFad | https://github.com/miss-islington/cpython/commit/ab575050709e2b313ca9a9585f09b6f4b0560318

B8 GH-98897: fix memory leak if `math.dist` raises exception (GH-98898) · miss-islington/cpython@ab57505 · GitHub
Skip to content

Commit

Permalink
pythonGH-98897: fix memory leak if math.dist raises exception (pyth…
Browse files Browse the repository at this point in the history
  • Loading branch information
kumaraditya303 authored Nov 1, 2022
1 parent 88297e2 commit ab57505
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 3 deletions.
5 changes: 5 additions & 0 deletions Lib/test/test_math.py
Original file line number Diff line number Diff line change
Expand Up @@ -1006,6 +1006,11 @@ class T(tuple):
self.assertEqual(math.dist(p, q), 5*scale)
self.assertEqual(math.dist(q, p), 5*scale)

def test_math_dist_leak(self):
# gh-98897: Check for error handling does not leak memory
with self.assertRaises(ValueError):
math.dist([1, 2], [3, 4, 5])

def testIsqrt(self):
# Test a variety of inputs, large and small.
test_values = (
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix memory leak in :func:`math.dist` when both points don't have the same dimension. Patch by Kumar Aditya.
6 changes: 3 additions & 3 deletions Modules/mathmodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -2717,13 +2717,13 @@ math_dist_impl(PyObject *module, PyObject *p, PyObject *q)
if (m != n) {
PyErr_SetString(PyExc_ValueError,
"both points must have the same number of dimensions");
return NULL;

goto error_exit;
}
if (n > NUM_STACK_ELEMS) {
diffs = (double *) PyObject_Malloc(n * sizeof(double));
if (diffs == NULL) {
return PyErr_NoMemory();
PyErr_NoMemory();
goto error_exit;
}
}
for (i=0 ; i<n ; i++) {
Expand Down

0 comments on commit ab57505

Please sign in to comment.








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: https://github.com/miss-islington/cpython/commit/ab575050709e2b313ca9a9585f09b6f4b0560318

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy