- PECL Bug #8700, zipArchive::getFromIndex() fails

This commit is contained in:
Pierre Joye 2006-09-15 12:10:50 +00:00
parent c912fa4a90
commit a072c66184
2 changed files with 36 additions and 2 deletions

View File

@ -1719,7 +1719,7 @@ static void php_zip_get_from(INTERNAL_FUNCTION_PARAMETERS, int type) /* {{{ */
char *filename; char *filename;
int filename_len; int filename_len;
long index; long index = -1;
long flags = 0; long flags = 0;
long len = 0; long len = 0;
@ -1753,8 +1753,12 @@ static void php_zip_get_from(INTERNAL_FUNCTION_PARAMETERS, int type) /* {{{ */
if (len < 1) { if (len < 1) {
len = sb.size; len = sb.size;
} }
if (index >= 0) {
zf = zip_fopen_index(intern, index, flags);
} else {
zf = zip_fopen(intern, filename, flags);
}
zf = zip_fopen(intern, filename, flags);
if (zf == NULL) { if (zf == NULL) {
RETURN_FALSE; RETURN_FALSE;
} }

View File

@ -0,0 +1,30 @@
--TEST--
bug #8700, getFromIndex(0) fails
--SKIPIF--
<?php
/* $Id$ */
if(!extension_loaded('zip')) die('skip');
?>
--FILE--
<?php
$thisdir = dirname(__FILE__);
$filename = $thisdir . "/bug8009.zip";
$zip = new ZipArchive();
if ($zip->open($filename) === FALSE) {
exit("cannot open $filename\n");
}
$contents_from_idx = $zip->getFromIndex(0);
$contents_from_name = $zip->getFromName('1.txt');
if ($contents_from_idx != $contents_from_name) {
echo "failed:";
var_dump($content_from_idx, $content_from_name);
}
$zip->close();
echo "status: " . $zip->status . "\n";
echo "\n";
--EXPECT--
status: 0