summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Peters <tim.peters@gmail.com>2006-05-17 01:30:11 (GMT)
committerTim Peters <tim.peters@gmail.com>2006-05-17 01:30:11 (GMT)
commit402cc242f0e3c8cd7373893b44b911354ce9e09b (patch)
tree8c57846eb617017247aef1d75ac3177d50eb9161
parent1b383570945595b5552c37859f4e17fb02575d05 (diff)
downloadcpython-402cc242f0e3c8cd7373893b44b911354ce9e09b.zip
cpython-402cc242f0e3c8cd7373893b44b911354ce9e09b.tar.gz
cpython-402cc242f0e3c8cd7373893b44b911354ce9e09b.tar.bz2
PyZlib_copy(), PyZlib_uncopy(): Repair leaks on the normal-case path.
-rw-r--r--Modules/zlibmodule.c14
1 files 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;