mirror of
https://github.com/php/php-src.git
synced 2024-10-04 00:06:16 +00:00
b93b48663d
fix a whole bunch of zip-related bugs tar tests need some naming add phar information to error messages, fix existing tests to reflect this
63 lines
1.7 KiB
PHP
Executable File
63 lines
1.7 KiB
PHP
Executable File
--TEST--
|
|
Phar: create with illegal path
|
|
--SKIPIF--
|
|
<?php if (!extension_loaded("phar")) die("skip"); ?>
|
|
<?php if (!extension_loaded("spl")) die("skip SPL not available"); ?>
|
|
--INI--
|
|
phar.readonly=0
|
|
phar.require_hash=1
|
|
--FILE--
|
|
<?php
|
|
|
|
$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
|
|
$pname = 'phar://' . $fname;
|
|
|
|
@unlink($fname);
|
|
|
|
file_put_contents($pname . '/a.php?', "query");
|
|
file_put_contents($pname . '/b.php?bla', "query");
|
|
|
|
var_dump(file_get_contents($pname . '/a.php'));
|
|
var_dump(file_get_contents($pname . '/b.php'));
|
|
|
|
function error_handler($errno, $errmsg)
|
|
{
|
|
echo "Error: $errmsg\n";
|
|
}
|
|
|
|
set_error_handler('error_handler');
|
|
|
|
$checks = array('/', '.', '../', 'a/..', 'a/', 'b//a.php');
|
|
foreach($checks as $check)
|
|
{
|
|
file_put_contents($pname . '/' . $check, "error");
|
|
}
|
|
|
|
$phar = new Phar($fname);
|
|
$checks = array("a\0");
|
|
foreach($checks as $check)
|
|
{
|
|
try
|
|
{
|
|
$phar[$check] = 'error';
|
|
}
|
|
catch(Exception $e)
|
|
{
|
|
echo 'Exception: ' . $e->getMessage() . "\n";
|
|
}
|
|
}
|
|
|
|
?>
|
|
===DONE===
|
|
--CLEAN--
|
|
<?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); ?>
|
|
--EXPECTF--
|
|
string(5) "query"
|
|
string(5) "query"
|
|
Error: file_put_contents(phar://%s//): failed to open stream: phar error: file "" in phar "%s" cannot be empty
|
|
Error: file_put_contents(phar://%s/.): failed to open stream: phar error: file "" in phar "%s" cannot be empty
|
|
Error: file_put_contents(phar://%s/../): failed to open stream: phar error: file "" in phar "%s" cannot be empty
|
|
Error: file_put_contents(phar://%s/a/..): failed to open stream: phar error: file "" in phar "%s" cannot be empty
|
|
Exception: Entry a does not exist and cannot be created: phar error: invalid path "a" contains illegal character
|
|
===DONE===
|