to_read = MIN(keylen, count);
if (to_read == 0 || count < keylen) {
+ PHAR_STR_FREE(str_key);
return 0;
}
memset(buf, 0, sizeof(php_stream_dirent));
memcpy(((php_stream_dirent *) buf)->d_name, str_key, to_read);
+ PHAR_STR_FREE(str_key);
((php_stream_dirent *) buf)->d_name[to_read + 1] = '\0';
return sizeof(php_stream_dirent);
if (keylen <= (uint)dirlen) {
if (keylen < (uint)dirlen || !strncmp(str_key, dir, dirlen)) {
+ PHAR_STR_FREE(str_key);
if (SUCCESS != zend_hash_move_forward(manifest)) {
break;
}
if (*dir == '/') {
/* root directory */
if (keylen >= sizeof(".phar")-1 && !memcmp(str_key, ".phar", sizeof(".phar")-1)) {
+ PHAR_STR_FREE(str_key);
/* do not add any magic entries to this directory */
if (SUCCESS != zend_hash_move_forward(manifest)) {
break;
entry[keylen] = '\0';
}
+ PHAR_STR_FREE(str_key);
goto PHAR_ADD_ENTRY;
} else {
if (0 != memcmp(str_key, dir, dirlen)) {
/* entry in directory not found */
+ PHAR_STR_FREE(str_key);
if (SUCCESS != zend_hash_move_forward(manifest)) {
break;
}
continue;
} else {
if (str_key[dirlen] != '/') {
+ PHAR_STR_FREE(str_key);
if (SUCCESS != zend_hash_move_forward(manifest)) {
break;
}
entry[keylen - dirlen - 1] = '\0';
keylen = keylen - dirlen - 1;
}
+ PHAR_STR_FREE(str_key);
PHAR_ADD_ENTRY:
if (keylen) {
phar_add_empty(data, entry, keylen);
&phar->manifest, &key, &keylen, &unused, 0, NULL)) {
PHAR_STR(key, str_key);
if (keylen > (uint)i_len && 0 == memcmp(str_key, internal_file, i_len)) {
+ PHAR_STR_FREE(str_key);
/* directory found */
internal_file = estrndup(internal_file,
i_len);
php_url_free(resource);
return phar_make_dirstream(internal_file, &phar->manifest TSRMLS_CC);
}
+ PHAR_STR_FREE(str_key);
}
if (SUCCESS != zend_hash_move_forward(&phar->manifest)) {
if (key_len > path_len &&
memcmp(str_key, resource->path+1, path_len) == 0 &&
IS_SLASH(str_key[path_len])) {
+ PHAR_STR_FREE(str_key);
php_stream_wrapper_log_error(wrapper, options TSRMLS_CC, "phar error: Directory not empty");
if (entry->is_temp_dir) {
efree(entry->filename);
php_url_free(resource);
return 0;
}
+ PHAR_STR_FREE(str_key);
}
for (zend_hash_internal_pointer_reset(&phar->virtual_dirs);
if (key_len > path_len &&
memcmp(str_key, resource->path+1, path_len) == 0 &&
IS_SLASH(str_key[path_len])) {
+ PHAR_STR_FREE(str_key);
php_stream_wrapper_log_error(wrapper, options TSRMLS_CC, "phar error: Directory not empty");
if (entry->is_temp_dir) {
efree(entry->filename);
php_url_free(resource);
return 0;
}
+ PHAR_STR_FREE(str_key);
}
}
if (keylen > (uint) filename_len) {
zend_hash_move_forward(&(PHAR_GLOBALS->phar_fname_map));
+ PHAR_STR_FREE(str_key);
continue;
}
if (!memcmp(filename, str_key, keylen) && ((uint)filename_len == keylen
|| filename[keylen] == '/' || filename[keylen] == '\0')) {
+ PHAR_STR_FREE(str_key);
if (FAILURE == zend_hash_get_current_data(&(PHAR_GLOBALS->phar_fname_map), (void **) &pphar)) {
break;
}
goto woohoo;
}
+ PHAR_STR_FREE(str_key);
zend_hash_move_forward(&(PHAR_GLOBALS->phar_fname_map));
}
if (keylen > (uint) filename_len) {
zend_hash_move_forward(&cached_phars);
+ PHAR_STR_FREE(str_key);
continue;
}
if (!memcmp(filename, str_key, keylen) && ((uint)filename_len == keylen
|| filename[keylen] == '/' || filename[keylen] == '\0')) {
+ PHAR_STR_FREE(str_key);
if (FAILURE == zend_hash_get_current_data(&cached_phars, (void **) &pphar)) {
break;
}
*ext_str = filename + (keylen - (*pphar)->ext_len);
goto woohoo;
}
+ PHAR_STR_FREE(str_key);
zend_hash_move_forward(&cached_phars);
}
}
spprintf(&b, 0, "%s", a.s);
#define PHAR_ZSTR(a, b) \
b = ZSTR(a);
+#define PHAR_STR_FREE(a) \
+ efree(a);
#else
typedef char *phar_zstr;
#define PHAR_STR(a, b) \
b = a;
#define PHAR_ZSTR(a, b) \
b = a;
+#define PHAR_STR_FREE(a)
#endif
BEGIN_EXTERN_C()
spprintf(&str_key, 0, "%s", key);
#else
spprintf(&str_key, 0, "%v", key);
+ ezfree(key);
#endif
} else {
PHAR_STR(key, str_key);
spprintf(&str_key, 0, "%s", key);
#else
spprintf(&str_key, 0, "%v", key);
+ ezfree(key);
#endif
} else {
PHAR_STR(key, str_key);
phar_seek_efp(link, 0, SEEK_SET, 0, 0 TSRMLS_CC);
Z_TYPE_P(return_value) = IS_STRING;
+#if PHP_MAJOR_VERSION >= 6
+ Z_STRLEN_P(return_value) = php_stream_copy_to_mem(fp, (void **) &(Z_STRVAL_P(return_value)), link->uncompressed_filesize, 0);
+#else
Z_STRLEN_P(return_value) = php_stream_copy_to_mem(fp, &(Z_STRVAL_P(return_value)), link->uncompressed_filesize, 0);
+#endif
if (!Z_STRVAL_P(return_value)) {
Z_STRVAL_P(return_value) = estrndup("", 0);
PHAR_STR(key, str_key);
if ((int)keylen >= internal_file_len || strncmp(str_key, internal_file, keylen)) {
zend_hash_move_forward_ex(&phar->mounted_dirs, &pos);
+ PHAR_STR_FREE(str_key);
continue;
} else {
char *test;
php_stream_statbuf ssbi;
if (SUCCESS != zend_hash_find(&phar->manifest, str_key, keylen, (void **) &entry)) {
+ PHAR_STR_FREE(str_key);
goto free_resource;
}
+ PHAR_STR_FREE(str_key);
if (!entry->tmp || !entry->is_mounted) {
goto free_resource;
}
zend_hash_update_current_key_ex(&phar->manifest, key_type, new_key, new_key_len, 0, HASH_UPDATE_KEY_ANYWAY, NULL);
#endif
}
+ PHAR_STR_FREE(str_key);
}
for (zend_hash_internal_pointer_reset(&phar->virtual_dirs);
#endif
efree(new_str_key);
}
+ PHAR_STR_FREE(str_key);
}
for (zend_hash_internal_pointer_reset(&phar->mounted_dirs);
#endif
efree(new_str_key);
}
+ PHAR_STR_FREE(str_key);
}
}
phar.require_hash=0
--FILE--
<?php
-
$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
$pname = 'phar://' . $fname;
$file = b"<?php
$files['b/a'] = 'b';
$files['b/c/d'] = 'c';
$files['bad/c'] = 'd';
-
include 'files/phar_test.inc';
include $fname;
?>
===DONE===
--EXPECTF--
-string(%d) "%smytest"
-string(%d) "%smytest"
+%unicode|string%(%d) "%smytest"
+%unicode|string%(%d) "%smytest"
Fatal error: Uncaught exception 'UnexpectedValueException' with message 'Cannot create phar '0000000000000000000', file extension (or combination) not recognised' in %sbug46032.php:%d
Stack trace:
<?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); ?>
--EXPECTF--
brand new!
-string(40) "%s"
-string(40) "%s"
+%unicode|string%(40) "%s"
+%unicode|string%(40) "%s"
bool(true)
modified!
another!
Phar: test edge cases of fopen() function interception #2
--SKIPIF--
<?php if (!extension_loaded("phar")) die("skip"); ?>
+<?php if (version_compare(PHP_VERSION, '6.0', '>=')) die('skip parameter parsing changed in 6.0'); ?>
--INI--
phar.readonly=0
--FILE--
fopen(array(), 'r');
chdir(dirname(__FILE__));
-file_put_contents($fname, "blah\n");
-file_put_contents("foob", "test\n");
+file_put_contents($fname, b"blah\n");
+file_put_contents("foob", b"test\n");
$a = fopen($fname, 'rb');
echo fread($a, 1000);
fclose($a);
unlink($fname);
mkdir($pname . '/oops');
-file_put_contents($pname . '/foo/hi', '<?php
+file_put_contents($pname . '/foo/hi', b'<?php
$context = stream_context_create();
$a = fopen("foob", "rb", false, $context);
echo fread($a, 1000);
--FILE_EXTERNAL--
files/blog.phar
--EXPECTF--
-string(%d) "<xml version="1.0" encoding="UTF-8">
+%string|unicode%(%d) "<xml version="1.0" encoding="UTF-8">
<config>
<database>
<host>localhost</name>
--SKIPIF--
<?php
if (!extension_loaded("phar")) die("skip");
-if (version_compare(PHP_VERSION, "6.0", ">")) die("skip pre-unicode version of PHP required");
?>
--INI--
phar.require_hash=1
var_dump(ini_get('phar.readonly'));
__HALT_COMPILER();
?>
---EXPECT--
-string(1) "1"
-string(1) "1"
-string(1) "1"
-string(1) "1"
+--EXPECTF--
+%unicode|string%(1) "1"
+%unicode|string%(1) "1"
+%unicode|string%(1) "1"
+%unicode|string%(1) "1"
bool(false)
bool(false)
-string(1) "1"
-string(1) "1"
+%unicode|string%(1) "1"
+%unicode|string%(1) "1"
+++ /dev/null
---TEST--
-Phar: test ini_set with readonly and require_hash enabled
---SKIPIF--
-<?php
-if (!extension_loaded("phar")) die("skip");
-if (version_compare(PHP_VERSION, "6.0", "<")) die("skip Unicode support required");
-?>
---INI--
-phar.require_hash=1
-phar.readonly=1
---FILE--
-<?php
-var_dump(ini_set('phar.require_hash', 1));
-var_dump(ini_set('phar.readonly', 1));
-var_dump(ini_get('phar.require_hash'));
-var_dump(ini_get('phar.readonly'));
-var_dump(ini_set('phar.require_hash', 0));
-var_dump(ini_set('phar.readonly', 0));
-var_dump(ini_get('phar.require_hash'));
-var_dump(ini_get('phar.readonly'));
-__HALT_COMPILER();
-?>
---EXPECT--
-unicode(1) "1"
-unicode(1) "1"
-unicode(1) "1"
-unicode(1) "1"
-unicode(1) "1"
-unicode(1) "1"
-unicode(1) "1"
-unicode(1) "1"
__HALT_COMPILER();
?>
--EXPECTF--
-%s(24) "UnexpectedValueException"
+%unicode|string%(%d) "%s"
RecursiveDirectoryIterator::__construct(1): failed to open dir: No such file or directory
===DONE===
--SKIPIF--
<?php
if (!extension_loaded("phar")) die("skip");
-if (version_compare(PHP_VERSION, "6.0", ">")) die("skip pre-unicode version of PHP required");
?>
--INI--
phar.require_hash=0
--EXPECTF--
array(35) {
["phar_ctx_001.phpt"]=>
- string(%d) "%sphar_ctx_001.phpt"
+ %unicode|string%(%d) "%sphar_ctx_001.phpt"
["phar_get_supported_signatures_001.phpt"]=>
- string(%d) "%sphar_get_supported_signatures_001.phpt"
+ %unicode|string%(%d) "%sphar_get_supported_signatures_001.phpt"
["phar_get_supported_signatures_002.phpt"]=>
- string(%d) "%sphar_get_supported_signatures_002.phpt"
+ %unicode|string%(%d) "%sphar_get_supported_signatures_002.phpt"
["phar_oo_001.phpt"]=>
- string(%d) "%sphar_oo_001.phpt"
+ %unicode|string%(%d) "%sphar_oo_001.phpt"
["phar_oo_002.phpt"]=>
- string(%d) "%sphar_oo_002.phpt"
+ %unicode|string%(%d) "%sphar_oo_002.phpt"
["phar_oo_003.phpt"]=>
- string(%d) "%sphar_oo_003.phpt"
+ %unicode|string%(%d) "%sphar_oo_003.phpt"
["phar_oo_004.phpt"]=>
- string(%d) "%sphar_oo_004.phpt"
+ %unicode|string%(%d) "%sphar_oo_004.phpt"
["phar_oo_005.phpt"]=>
- string(%d) "%sphar_oo_005.phpt"
+ %unicode|string%(%d) "%sphar_oo_005.phpt"
["phar_oo_006.phpt"]=>
- string(%d) "%sphar_oo_006.phpt"
+ %unicode|string%(%d) "%sphar_oo_006.phpt"
["phar_oo_007.phpt"]=>
- string(%d) "%sphar_oo_007.phpt"
+ %unicode|string%(%d) "%sphar_oo_007.phpt"
["phar_oo_008.phpt"]=>
- string(%d) "%sphar_oo_008.phpt"
+ %unicode|string%(%d) "%sphar_oo_008.phpt"
["phar_oo_009.phpt"]=>
- string(%d) "%sphar_oo_009.phpt"
+ %unicode|string%(%d) "%sphar_oo_009.phpt"
["phar_oo_010.phpt"]=>
- string(%d) "%sphar_oo_010.phpt"
+ %unicode|string%(%d) "%sphar_oo_010.phpt"
["phar_oo_011.phpt"]=>
- string(%d) "%sphar_oo_011.phpt"
+ %unicode|string%(%d) "%sphar_oo_011.phpt"
["phar_oo_012.phpt"]=>
- string(%d) "%sphar_oo_012.phpt"
+ %unicode|string%(%d) "%sphar_oo_012.phpt"
["phar_oo_compressed_001.phpt"]=>
- string(%d) "%sphar_oo_compressed_001.phpt"
+ %unicode|string%(%d) "%sphar_oo_compressed_001.phpt"
["phar_oo_compressed_002.phpt"]=>
- string(%d) "%sphar_oo_compressed_002.phpt"
+ %unicode|string%(%d) "%sphar_oo_compressed_002.phpt"
["phpinfo_001.phpt"]=>
- string(%d) "%sphpinfo_001.phpt"
+ %unicode|string%(%d) "%sphpinfo_001.phpt"
["phpinfo_002.phpt"]=>
- string(%d) "%sphpinfo_002.phpt"
+ %unicode|string%(%d) "%sphpinfo_002.phpt"
["phpinfo_003.phpt"]=>
- string(%d) "%sphpinfo_003.phpt"
+ %unicode|string%(%d) "%sphpinfo_003.phpt"
["phpinfo_004.phpt"]=>
- string(%d) "%sphpinfo_004.phpt"
+ %unicode|string%(%d) "%sphpinfo_004.phpt"
["tar/tar_001.phpt"]=>
- string(%d) "%star%ctar_001.phpt"
+ %unicode|string%(%d) "%star%ctar_001.phpt"
["tar/tar_002.phpt"]=>
- string(%d) "%star%ctar_002.phpt"
+ %unicode|string%(%d) "%star%ctar_002.phpt"
["tar/tar_003.phpt"]=>
- string(%d) "%star%ctar_003.phpt"
+ %unicode|string%(%d) "%star%ctar_003.phpt"
["tar/tar_004.phpt"]=>
- string(%d) "%star%ctar_004.phpt"
+ %unicode|string%(%d) "%star%ctar_004.phpt"
["zip/corrupt_001.phpt"]=>
- string(%d) "%szip%ccorrupt_001.phpt"
+ %unicode|string%(%d) "%szip%ccorrupt_001.phpt"
["zip/corrupt_002.phpt"]=>
- string(%d) "%szip%ccorrupt_002.phpt"
+ %unicode|string%(%d) "%szip%ccorrupt_002.phpt"
["zip/corrupt_003.phpt"]=>
- string(%d) "%szip%ccorrupt_003.phpt"
+ %unicode|string%(%d) "%szip%ccorrupt_003.phpt"
["zip/corrupt_004.phpt"]=>
- string(%d) "%szip%ccorrupt_004.phpt"
+ %unicode|string%(%d) "%szip%ccorrupt_004.phpt"
["zip/corrupt_005.phpt"]=>
- string(%d) "%szip%ccorrupt_005.phpt"
+ %unicode|string%(%d) "%szip%ccorrupt_005.phpt"
["zip/corrupt_006.phpt"]=>
- string(%d) "%szip%ccorrupt_006.phpt"
+ %unicode|string%(%d) "%szip%ccorrupt_006.phpt"
["zip/corrupt_007.phpt"]=>
- string(%d) "%szip%ccorrupt_007.phpt"
+ %unicode|string%(%d) "%szip%ccorrupt_007.phpt"
["zip/corrupt_008.phpt"]=>
- string(%d) "%szip%ccorrupt_008.phpt"
+ %unicode|string%(%d) "%szip%ccorrupt_008.phpt"
["zip/corrupt_009.phpt"]=>
- string(%d) "%szip%ccorrupt_009.phpt"
+ %unicode|string%(%d) "%szip%ccorrupt_009.phpt"
["zip/corrupt_010.phpt"]=>
- string(%d) "%szip%ccorrupt_010.phpt"
+ %unicode|string%(%d) "%szip%ccorrupt_010.phpt"
}
===DONE===
+++ /dev/null
---TEST--
-Phar::buildFromIterator() RegexIterator(RecursiveIteratorIterator), SplFileInfo as current
---SKIPIF--
-<?php
-if (!extension_loaded("phar")) die("skip");
-if (version_compare(PHP_VERSION, "6.0", "<")) die("skip Unicode support required");
-?>
---INI--
-phar.require_hash=0
-phar.readonly=0
---FILE--
-<?php
-try {
- chdir(dirname(__FILE__));
- $phar = new Phar(dirname(__FILE__) . '/buildfromiterator.phar');
- $dir = new RecursiveDirectoryIterator('.');
- $iter = new RecursiveIteratorIterator($dir);
- $a = $phar->buildFromIterator(new RegexIterator($iter, '/_\d{3}\.phpt$/'), dirname(__FILE__) . DIRECTORY_SEPARATOR);
- asort($a);
- var_dump($a);
-} catch (Exception $e) {
- var_dump(get_class($e));
- echo $e->getMessage() . "\n";
-}
-?>
-===DONE===
---CLEAN--
-<?php
-unlink(dirname(__FILE__) . '/buildfromiterator.phar');
-__HALT_COMPILER();
-?>
---EXPECTF--
-array(33) {
- ["phar_ctx_001.phpt"]=>
- unicode(%d) "%sphar_ctx_001.phpt"
- ["phar_get_supported_signatures_001.phpt"]=>
- unicode(%d) "%sphar_get_supported_signatures_001.phpt"
- ["phar_get_supported_signatures_002.phpt"]=>
- unicode(%d) "%sphar_get_supported_signatures_002.phpt"
- ["phar_oo_001.phpt"]=>
- unicode(%d) "%sphar_oo_001.phpt"
- ["phar_oo_002.phpt"]=>
- unicode(%d) "%sphar_oo_002.phpt"
- ["phar_oo_003.phpt"]=>
- unicode(%d) "%sphar_oo_003.phpt"
- ["phar_oo_004.phpt"]=>
- unicode(%d) "%sphar_oo_004.phpt"
- ["phar_oo_005.phpt"]=>
- unicode(%d) "%sphar_oo_005.phpt"
- ["phar_oo_006.phpt"]=>
- unicode(%d) "%sphar_oo_006.phpt"
- ["phar_oo_007.phpt"]=>
- unicode(%d) "%sphar_oo_007.phpt"
- ["phar_oo_008.phpt"]=>
- unicode(%d) "%sphar_oo_008.phpt"
- ["phar_oo_009.phpt"]=>
- unicode(%d) "%sphar_oo_009.phpt"
- ["phar_oo_010.phpt"]=>
- unicode(%d) "%sphar_oo_010.phpt"
- ["phar_oo_011.phpt"]=>
- unicode(%d) "%sphar_oo_011.phpt"
- ["phar_oo_012.phpt"]=>
- unicode(%d) "%sphar_oo_012.phpt"
- ["phar_oo_compressed_001.phpt"]=>
- unicode(%d) "%sphar_oo_compressed_001.phpt"
- ["phar_oo_compressed_002.phpt"]=>
- unicode(%d) "%sphar_oo_compressed_002.phpt"
- ["phpinfo_001.phpt"]=>
- unicode(%d) "%sphpinfo_001.phpt"
- ["phpinfo_002.phpt"]=>
- unicode(%d) "%sphpinfo_002.phpt"
- ["phpinfo_003.phpt"]=>
- unicode(%d) "%sphpinfo_003.phpt"
- ["phpinfo_004.phpt"]=>
- unicode(%d) "%sphpinfo_004.phpt"
- ["tar/tar_001.phpt"]=>
- unicode(%d) "%star%ctar_001.phpt"
- ["tar/tar_002.phpt"]=>
- unicode(%d) "%star%ctar_002.phpt"
- ["tar/tar_003.phpt"]=>
- unicode(%d) "%star%ctar_003.phpt"
- ["tar/tar_004.phpt"]=>
- unicode(%d) "%star%ctar_004.phpt"
- ["zip/corrupt_001.phpt"]=>
- unicode(%d) "%szip%ccorrupt_001.phpt"
- ["zip/corrupt_002.phpt"]=>
- unicode(%d) "%szip%ccorrupt_002.phpt"
- ["zip/corrupt_003.phpt"]=>
- unicode(%d) "%szip%ccorrupt_003.phpt"
- ["zip/corrupt_004.phpt"]=>
- unicode(%d) "%szip%ccorrupt_004.phpt"
- ["zip/corrupt_005.phpt"]=>
- unicode(%d) "%szip%ccorrupt_005.phpt"
- ["zip/corrupt_006.phpt"]=>
- unicode(%d) "%szip%ccorrupt_006.phpt"
- ["zip/corrupt_007.phpt"]=>
- unicode(%d) "%szip%ccorrupt_007.phpt"
- ["zip/corrupt_008.phpt"]=>
- unicode(%d) "%szip%ccorrupt_008.phpt"
-}
-===DONE===
--SKIPIF--
<?php
if (!extension_loaded("phar")) die("skip");
-if (version_compare(PHP_VERSION, "6.0", ">")) die("skip pre-unicode version of PHP required");
if (!extension_loaded("spl")) die("skip SPL not available");
if (!extension_loaded("bz2")) die("skip bz2 not available");
?>
@unlink(dirname(__FILE__) . '/phar_bz2.2.phar');
?>
--EXPECTF--
-string(9) "it worked"
-string(%d) "phar://%sphar_bz2.phar/tar_004.php"
+%unicode|string%(9) "it worked"
+%unicode|string%(%d) "phar://%sphar_bz2.phar/tar_004.php"
bool(true)
bool(true)
+++ /dev/null
---TEST--
-Phar: bzipped phar
---SKIPIF--
-<?php
-if (!extension_loaded("phar")) die("skip");
-if (version_compare(PHP_VERSION, "6.0", "<")) die("skip Unicode support required");
-if (!extension_loaded("spl")) die("skip SPL not available");
-if (!extension_loaded("bz2")) die("skip bz2 not available");
-?>
---INI--
-phar.readonly=0
-phar.require_hash=0
---FILE--
-<?php
-$fname = dirname(__FILE__) . '/phar_bz2U.phar';
-$pname = 'phar://' . $fname;
-$fname2 = dirname(__FILE__) . '/phar_bz2U.2.phar';
-$pname2 = 'phar://' . $fname2;
-
-$file = '<?php
-Phar::mapPhar();
-var_dump("it worked");
-include "phar://" . __FILE__ . "/tar_004.php";
-__HALT_COMPILER();';
-
-$files = array();
-$files['tar_004.php'] = '<?php var_dump(__FILE__);';
-$files['internal/file/here'] = "hi there!\n";
-$files['internal/dir/'] = '';
-$files['dir/'] = '';
-$bz2 = true;
-
-include 'files/phar_test.inc';
-
-include $fname;
-
-$a = new Phar($fname);
-$a['test'] = 'hi';
-copy($fname, $fname2);
-$a->setAlias('another');
-$b = new Phar($fname2);
-var_dump($b->isFileFormat(Phar::PHAR));
-var_dump($b->isCompressed() == Phar::BZ2);
-// additional code coverage
-$b->isFileFormat(array());
-try {
-$b->isFileFormat(25);
-} catch (Exception $e) {
-echo $e->getMessage(),"\n";
-}
-?>
-===DONE===
---CLEAN--
-<?php
-@unlink(dirname(__FILE__) . '/phar_bz2U.phar');
-@unlink(dirname(__FILE__) . '/phar_bz2U.2.phar');
-?>
---EXPECTF--
-unicode(9) "it worked"
-unicode(%d) "phar://%sphar_bz2U.phar/tar_004.php"
-bool(true)
-bool(true)
-
-Warning: Phar::isFileFormat() expects parameter 1 to be long, array given in %sphar_bz2U.php on line %d
-Unknown file format specified
-===DONE===
PHAR_STR(key, str_key);
if ((int)keylen >= path_len || strncmp(str_key, path, keylen)) {
+ PHAR_STR_FREE(str_key);
continue;
} else {
char *test;
if (error) {
spprintf(error, 4096, "phar internal error: mounted path \"%s\" could not be retrieved from manifest", str_key);
}
+ PHAR_STR_FREE(str_key);
return NULL;
}
if (error) {
spprintf(error, 4096, "phar internal error: mounted path \"%s\" is not properly initialized as a mounted path", str_key);
}
+ PHAR_STR_FREE(str_key);
return NULL;
}
+ PHAR_STR_FREE(str_key);
test_len = spprintf(&test, MAXPATHLEN, "%s%s", entry->tmp, path + keylen);
Z_TYPE_P(zdata) = IS_STRING;
Z_STRLEN_P(zdata) = end;
+#if PHP_MAJOR_VERSION > 5
+ if (end != (off_t) php_stream_copy_to_mem(fp, (void **) &(Z_STRVAL_P(zdata)), (size_t) end, 0)) {
+#else
if (end != (off_t) php_stream_copy_to_mem(fp, &(Z_STRVAL_P(zdata)), (size_t) end, 0)) {
+#endif
zval_dtor(zdata);
zval_dtor(zsig);
zval_dtor(zkey);
pfp = php_stream_open_wrapper(pfile, "rb", 0, NULL);
efree(pfile);
+#if PHP_MAJOR_VERSION > 5
+ if (!pfp || !(pubkey_len = php_stream_copy_to_mem(pfp, (void **) &pubkey, PHP_STREAM_COPY_ALL, 0)) || !pubkey) {
+#else
if (!pfp || !(pubkey_len = php_stream_copy_to_mem(pfp, &pubkey, PHP_STREAM_COPY_ALL, 0)) || !pubkey) {
+#endif
if (pfp) {
php_stream_close(pfp);
}