]> granicus.if.org Git - php/commitdiff
fix minor memleak
authorGreg Beaver <cellog@php.net>
Mon, 12 May 2008 17:40:14 +0000 (17:40 +0000)
committerGreg Beaver <cellog@php.net>
Mon, 12 May 2008 17:40:14 +0000 (17:40 +0000)
ext/phar/zip.c

index 55d06b589cc8b8fc3f7a8718313b4564c17b6826..4b206904678f51d78773f6307869563af9e11821 100644 (file)
@@ -416,6 +416,8 @@ foundit:
                                        PHAR_ZIP_FAIL("unable to decompress alias, zlib filter creation failed");
                                }
                                php_stream_filter_append(&fp->readfilters, filter);
+                               efree(mydata->alias);
+                               mydata->alias = NULL;
                                if (!(entry.uncompressed_filesize = php_stream_copy_to_mem(fp, &(mydata->alias), entry.uncompressed_filesize, 0)) || !mydata->alias) {
                                        efree(entry.filename);
                                        PHAR_ZIP_FAIL("unable to read in alias, truncated");
@@ -431,6 +433,8 @@ foundit:
                                }
                                php_stream_filter_append(&fp->readfilters, filter);
                                php_stream_filter_append(&fp->readfilters, filter);
+                               efree(mydata->alias);
+                               mydata->alias = NULL;
                                if (!(entry.uncompressed_filesize = php_stream_copy_to_mem(fp, &(mydata->alias), entry.uncompressed_filesize, 0)) || !mydata->alias) {
                                        efree(entry.filename);
                                        PHAR_ZIP_FAIL("unable to read in alias, truncated");
@@ -438,6 +442,8 @@ foundit:
                                php_stream_filter_flush(filter, 1);
                                php_stream_filter_remove(filter, 1 TSRMLS_CC);
                        } else {
+                               efree(mydata->alias);
+                               mydata->alias = NULL;
                                if (!(entry.uncompressed_filesize = php_stream_copy_to_mem(fp, &(mydata->alias), entry.uncompressed_filesize, 0)) || !mydata->alias) {
                                        efree(entry.filename);
                                        PHAR_ZIP_FAIL("unable to read in alias, truncated");