From cd97da3b1d61be00bb06f3264a60418dbdb83bd8 Mon Sep 17 00:00:00 2001 From: Tim Peters Date: Mon, 30 Aug 2004 02:58:59 +0000 Subject: [PATCH] long_pow(): Fix more instances of leaks in error cases. Bugfix candidate -- although long_pow() is so different now I doubt a patch would apply to 2.3. --- Objects/longobject.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Objects/longobject.c b/Objects/longobject.c index 05c42ad47d..0103e5c079 100644 --- a/Objects/longobject.c +++ b/Objects/longobject.c @@ -2343,7 +2343,7 @@ long_pow(PyObject *v, PyObject *w, PyObject *x) if (c) { PyErr_SetString(PyExc_TypeError, "pow() 2nd argument " "cannot be negative when 3rd argument specified"); - return NULL; + goto Error; } else { /* else return a float. This works because we know @@ -2361,7 +2361,7 @@ long_pow(PyObject *v, PyObject *w, PyObject *x) if (c->ob_size == 0) { PyErr_SetString(PyExc_ValueError, "pow() 3rd argument cannot be 0"); - goto Done; + goto Error; } /* if modulus < 0: @@ -2390,7 +2390,7 @@ long_pow(PyObject *v, PyObject *w, PyObject *x) Having the base positive just makes things easier. */ if (a->ob_size < 0) { if (l_divmod(a, c, NULL, &temp) < 0) - goto Done; + goto Error; Py_DECREF(a); a = temp; temp = NULL; -- 2.50.1