From 72cf6a8c071864581a8a4b8d395b201de8ccfc82 Mon Sep 17 00:00:00 2001 From: Neal Norwitz Date: Wed, 14 Aug 2002 02:03:50 +0000 Subject: Fix memory leaks reported by valgrind --- Modules/mpzmodule.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Modules/mpzmodule.c b/Modules/mpzmodule.c index 5974df1..4641298 100644 --- a/Modules/mpzmodule.c +++ b/Modules/mpzmodule.c @@ -961,7 +961,7 @@ MPZ_powm(PyObject *self, PyObject *args) { PyObject *base, *exp, *mod; mpzobject *mpzbase = NULL, *mpzexp = NULL, *mpzmod = NULL; - mpzobject *z; + mpzobject *z = NULL; int tstres; @@ -975,10 +975,15 @@ MPZ_powm(PyObject *self, PyObject *args) Py_XDECREF(mpzbase); Py_XDECREF(mpzexp); Py_XDECREF(mpzmod); + Py_XDECREF(z); return NULL; } if ((tstres=mpz_cmp_ui(&mpzexp->mpz, (unsigned long int)0)) == 0) { + Py_DECREF(mpzbase); + Py_DECREF(mpzexp); + Py_DECREF(mpzmod); + Py_DECREF(z); Py_INCREF(mpz_value_one); return (PyObject *)mpz_value_one; } @@ -987,6 +992,7 @@ MPZ_powm(PyObject *self, PyObject *args) Py_DECREF(mpzbase); Py_DECREF(mpzexp); Py_DECREF(mpzmod); + Py_DECREF(z); PyErr_SetString(PyExc_ValueError, "modulus cannot be 0"); return NULL; } -- cgit v0.12