cellog Thu Aug 21 20:35:12 2008 UTC Modified files: /php-src/ext/phar/tests/zip corrupt_009.phpt /php-src/ext/phar/tests/zip/files corrupt3.php.inc extralen_toolong.zip corrupt_zipmaker.php.inc Log: MFB increase code coverage http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/zip/corrupt_009.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/phar/tests/zip/corrupt_009.phpt diff -u /dev/null php-src/ext/phar/tests/zip/corrupt_009.phpt:1.2 --- /dev/null Thu Aug 21 20:35:12 2008 +++ php-src/ext/phar/tests/zip/corrupt_009.phpt Thu Aug 21 20:35:12 2008 @@ -0,0 +1,17 @@ +--TEST-- +Phar: corrupted zip (extra field way too long) +--SKIPIF-- +<?php if (!extension_loaded("phar")) die("skip"); ?> +<?php if (!extension_loaded("spl")) die("skip SPL not available"); ?> +--FILE-- +<?php +try { + new PharData(dirname(__FILE__) . '/files/extralen_toolong.zip'); +} catch (Exception $e) { + echo $e->getMessage() . "\n"; +} +?> +===DONE=== +--EXPECTF-- +phar error: Unable to process extra field header for file in central directory in zip-based phar "%sextralen_toolong.zip" +===DONE=== http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/zip/files/corrupt3.php.inc?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/phar/tests/zip/files/corrupt3.php.inc diff -u /dev/null php-src/ext/phar/tests/zip/files/corrupt3.php.inc:1.2 --- /dev/null Thu Aug 21 20:35:12 2008 +++ php-src/ext/phar/tests/zip/files/corrupt3.php.inc Thu Aug 21 20:35:12 2008 @@ -0,0 +1,9 @@ +<?php +include dirname(__FILE__) . '/corrupt_zipmaker.php.inc'; +$a = new corrupt_zipmaker; +$a->addFile('hi', null, 'hii', null, null, null, 'extralen1'); +$a->writeZip(dirname(__FILE__) . '/extralen_toolong.zip'); +$a = new corrupt_zipmaker; +$a->addFile('hi', null, 'hii'); +$a->writeZip(dirname(__FILE__) . '/disknumber.zip', 'disknumber'); +?> http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/zip/files/extralen_toolong.zip?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/phar/tests/zip/files/extralen_toolong.zip http://cvs.php.net/viewvc.cgi/php-src/ext/phar/tests/zip/files/corrupt_zipmaker.php.inc?r1=1.7&r2=1.8&diff_format=u Index: php-src/ext/phar/tests/zip/files/corrupt_zipmaker.php.inc diff -u php-src/ext/phar/tests/zip/files/corrupt_zipmaker.php.inc:1.7 php-src/ext/phar/tests/zip/files/corrupt_zipmaker.php.inc:1.8 --- php-src/ext/phar/tests/zip/files/corrupt_zipmaker.php.inc:1.7 Fri Aug 1 13:36:19 2008 +++ php-src/ext/phar/tests/zip/files/corrupt_zipmaker.php.inc Thu Aug 21 20:35:12 2008 @@ -26,7 +26,7 @@ * @author Vincent Lascaux <[EMAIL PROTECTED]> * @copyright 1997-2005 The PHP Group * @license http://www.gnu.org/copyleft/lesser.html LGPL - * @version CVS: $Id: corrupt_zipmaker.php.inc,v 1.7 2008/08/01 13:36:19 sfox Exp $ + * @version CVS: $Id: corrupt_zipmaker.php.inc,v 1.8 2008/08/21 20:35:12 cellog Exp $ * @link http://pear.php.net/package/File_Archive */ @@ -237,6 +237,15 @@ $filename . $comment; $offset = strlen($central); break; + case 'extralen1' : + $extra = 'nu' . 0xffff; // way huge size + $central = "PK\x01\x02\x00\x00\x14\x00\x00\x00" . pack('v', $compmethod) . + $mtime . + pack("VVVvvvvvVV", $crc32, $complength, $uncomplength, strlen($filename), strlen($extra),strlen($comment),0x00,0x00, + 0x0000, $this->offset). + $filename . $extra . $comment; + $offset = strlen($central); + break; } return $central; } @@ -279,6 +288,12 @@ $this->offset, strlen($this->start), strlen($this->comment)) . $this->comment; break; + case 'disknumber' : + $write .= "PK\x05\x06\x01\x00\x01\x00" . + pack("vvVVv", $this->count, $this->count, + $this->offset, strlen($this->start), + strlen($this->comment)) . $this->comment; + break; case 'count1' : $write .= "PK\x05\x06\x00\x00\x00\x00" . pack("vvVVv", $this->count + 1, $this->count,
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php