]> granicus.if.org Git - php/commitdiff
fix ridiculously critical omission in zip flush - we never set compressed file size...
authorGreg Beaver <cellog@php.net>
Sat, 26 Apr 2008 23:02:51 +0000 (23:02 +0000)
committerGreg Beaver <cellog@php.net>
Sat, 26 Apr 2008 23:02:51 +0000 (23:02 +0000)
ext/phar/tests/zip/phar_setalias.phpt
ext/phar/zip.c

index 3a9cfce07e1f4cc32d6bf7604519cadf0d4adc73..19daa407dde5f41389281591163ce05da273751b 100644 (file)
@@ -41,15 +41,16 @@ $phar->setAlias('unused');
 $p2 = new Phar($fname2);
 echo $p2->getAlias(), "\n";
 $p2->compressFiles(Phar::BZ2);
-copy($fname3, $fname3);
+copy($fname2, $fname3);
 $p2->setAlias('unused2');
 $p3 = new Phar($fname3);
 echo $p3->getAlias(), "\n";
 ?>
 ===DONE===
 --CLEAN--
-<?php 
+<?php
 unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.zip');
+unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '2.phar.zip');
 unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phartmp.zip');
 __HALT_COMPILER();
 ?>
index bf613a31f587be315322aa60c5761ef0ab426ca0..37c1a19787c5e9415b8d1a5a1079c342f862aae9 100644 (file)
@@ -606,6 +606,7 @@ static int phar_zip_changed_apply(void *data, void *arg TSRMLS_DC) /* {{{ */
                php_stream_filter_remove(filter, 1 TSRMLS_CC);
                php_stream_seek(entry->cfp, 0, SEEK_END);
                entry->compressed_filesize = (php_uint32) php_stream_tell(entry->cfp);
+               central.compsize = local.compsize = PHAR_SET_32(entry->compressed_filesize);
                /* generate crc on compressed file */
                php_stream_rewind(entry->cfp);
                entry->old_flags = entry->flags;