From 402cc242f0e3c8cd7373893b44b911354ce9e09b Mon Sep 17 00:00:00 2001 From: Tim Peters Date: Wed, 17 May 2006 01:30:11 +0000 Subject: PyZlib_copy(), PyZlib_uncopy(): Repair leaks on the normal-case path. --- Modules/zlibmodule.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/Modules/zlibmodule.c b/Modules/zlibmodule.c index b41ed50..06b0690 100644 --- a/Modules/zlibmodule.c +++ b/Modules/zlibmodule.c @@ -685,10 +685,12 @@ PyZlib_copy(compobject *self) goto error; } + Py_INCREF(self->unused_data); + Py_INCREF(self->unconsumed_tail); + Py_XDECREF(retval->unused_data); + Py_XDECREF(retval->unconsumed_tail); retval->unused_data = self->unused_data; retval->unconsumed_tail = self->unconsumed_tail; - Py_INCREF(retval->unused_data); - Py_INCREF(retval->unconsumed_tail); /* Mark it as being initialized */ retval->is_initialised = 1; @@ -698,7 +700,7 @@ PyZlib_copy(compobject *self) error: LEAVE_ZLIB - Py_XDECREF(retval); + Py_XDECREF(retval); return NULL; } @@ -734,10 +736,12 @@ PyZlib_uncopy(compobject *self) goto error; } + Py_INCREF(self->unused_data); + Py_INCREF(self->unconsumed_tail); + Py_XDECREF(retval->unused_data); + Py_XDECREF(retval->unconsumed_tail); retval->unused_data = self->unused_data; retval->unconsumed_tail = self->unconsumed_tail; - Py_INCREF(retval->unused_data); - Py_INCREF(retval->unconsumed_tail); /* Mark it as being initialized */ retval->is_initialised = 1; -- cgit v0.12