ID: 48048
Comment by: php at codecaster dot nl
Reported By: php at codecaster dot nl
Status: Feedback
Bug Type: Zip Related
Operating System: FreeBSD 7
PHP Version: 5.2.9
New Comment:
I have installed the latest build, PHP 5.2.10-dev. Same results.
>From phpinfo():
Zip enabled
Extension Version $Id: php_zip.c,v 1.1.2.50 2009/03/01 17:35:25 iliaa
Exp $
Zip version 1.8.11
Libzip version 0.9.0
Updated test script (will output 2, should be 0):
<?php
// create empty file
if (file_put_contents("empty.txt", "") === false) {
die("Cannot write files");
}
// zip it using ZipArchive
$zip = new ZipArchive();
$zip->open("corrupt.zip", ZIPARCHIVE::CREATE);
$zip->addFile("empty.txt");
$zip->close();
// open the file, show compressed size (returns 2, should be 0)
if (($zip = zip_open("corrupt.zip"))) {
// read first entry
$zip_entry = zip_read($zip);
echo "Compressed Size: " . zip_entry_compressedsize($zip_entry);
zip_close($zip);
}
?>
Previous Comments:
------------------------------------------------------------------------
[2009-04-25 16:07:18] [email protected]
Please try using this CVS snapshot:
http://snaps.php.net/php5.2-latest.tar.gz
For Windows:
http://windows.php.net/snapshots/
I can't reproduce this with latest CVS checkout of PHP_5_2.
------------------------------------------------------------------------
[2009-04-22 14:38:46] php at codecaster dot nl
Description:
------------
When you use ZipArchive->addFile() on an empty file, the file will be
compressed anyway. This is incorrectly read by some (older)
decompression programs.
Reproduce code:
---------------
if (file_put_contents("empty.txt", "") === false) {
die("Cannot write files");
}
$zip = new ZipArchive();
$zip->open("corrupt.zip", ZIPARCHIVE::CREATE);
$zip->addFile("empty.txt");
$zip->close();
Expected result:
----------------
A zip file containing empty.txt with a size of 0 bytes and a compressed
size of 0 bytes.
Actual result:
--------------
A zip file containing empty.txt with a size of 0 bytes and a compressed
size of 2 bytes.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=48048&edit=1