]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Fix memory leak: Always DECREF obj in PyBuffer_Release.
authorMartin v. Löwis <martin@v.loewis.de>
Thu, 14 Aug 2008 20:12:06 +0000 (20:12 +0000)
committerMartin v. Löwis <martin@v.loewis.de>
Thu, 14 Aug 2008 20:12:06 +0000 (20:12 +0000)
Objects/abstract.c

index aca60bdfcf5f541290a28d677951706c549c38c7..68e15491b60369e10254a556a41233761707ea40 100644 (file)
@@ -708,11 +708,9 @@ void
 PyBuffer_Release(Py_buffer *view)
 {
        PyObject *obj = view->obj;
-       if (!obj || !Py_TYPE(obj)->tp_as_buffer || !Py_TYPE(obj)->tp_as_buffer->bf_releasebuffer)
-               /* Unmanaged buffer */
-               return;
-       Py_TYPE(obj)->tp_as_buffer->bf_releasebuffer(obj, view);
-       Py_DECREF(obj);
+       if (obj && Py_TYPE(obj)->tp_as_buffer && Py_TYPE(obj)->tp_as_buffer->bf_releasebuffer)
+               Py_TYPE(obj)->tp_as_buffer->bf_releasebuffer(obj, view);
+       Py_XDECREF(obj);
        view->obj = NULL;
 }