]> granicus.if.org Git - python/commitdiff
Issue 2784: fix leaks in exception exit.
authorRaymond Hettinger <python@rcn.com>
Fri, 30 May 2008 06:37:27 +0000 (06:37 +0000)
committerRaymond Hettinger <python@rcn.com>
Fri, 30 May 2008 06:37:27 +0000 (06:37 +0000)
Python/bltinmodule.c

index dbae0c92eda89ece7317f7a3684247f4e2a5f170..715a10870cfb5f57d5059f4b612d6e033fed9b81 100644 (file)
@@ -2305,14 +2305,14 @@ builtin_sum(PyObject *self, PyObject *args)
                                return PyFloat_FromDouble(f_result);
                        }
                        if (PyFloat_CheckExact(item)) {
-                               PyFPE_START_PROTECT("add", return 0)
+                               PyFPE_START_PROTECT("add", Py_DECREF(item); Py_DECREF(iter); return 0)
                                f_result += PyFloat_AS_DOUBLE(item);
                                PyFPE_END_PROTECT(f_result)
                                Py_DECREF(item);
                                continue;
                        }
                        if (PyInt_CheckExact(item)) {
-                               PyFPE_START_PROTECT("add", return 0)
+                               PyFPE_START_PROTECT("add", Py_DECREF(item); Py_DECREF(iter); return 0)
                                f_result += (double)PyInt_AS_LONG(item);
                                PyFPE_END_PROTECT(f_result)
                                Py_DECREF(item);