summaryrefslogtreecommitdiff
path: root/ext/zip/zip_stream.c
diff options
context:
space:
mode:
authorNuno Lopes <nlopess@php.net>2006-11-12 00:41:16 +0000
committerNuno Lopes <nlopess@php.net>2006-11-12 00:41:16 +0000
commit7d75155e01a926d222843894a7b06e24378b02fd (patch)
tree880e6ad9f7d322b75f3454917d79c1b543a2d704 /ext/zip/zip_stream.c
parentc0b0d0a81a7d5c1ca150068179911473af2f0069 (diff)
downloadphp-git-7d75155e01a926d222843894a7b06e24378b02fd.tar.gz
fix leak in oo_stream.phpt
Diffstat (limited to 'ext/zip/zip_stream.c')
-rw-r--r--ext/zip/zip_stream.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/ext/zip/zip_stream.c b/ext/zip/zip_stream.c
index dd5374edd8..83e9ceab3e 100644
--- a/ext/zip/zip_stream.c
+++ b/ext/zip/zip_stream.c
@@ -60,9 +60,15 @@ static size_t php_zip_ops_write(php_stream *stream, const char *buf, size_t coun
static int php_zip_ops_close(php_stream *stream, int close_handle TSRMLS_DC)
{
STREAM_DATA_FROM_STREAM();
- if (close_handle && self->za) {
- zip_close(self->za);
- self->za = NULL;
+ if (close_handle) {
+ if (self->za) {
+ zip_close(self->za);
+ self->za = NULL;
+ }
+ if (self->zf) {
+ zip_fclose(self->zf);
+ self->zf = NULL;
+ }
}
efree(self);
stream->abstract = NULL;