mirror of
https://github.com/php/php-src.git
synced 2024-09-23 02:47:26 +00:00
increase test coverage of phar_wrapper_mkdir, fix segfault when mkdir() on existing directory
This commit is contained in:
parent
0789f3d81c
commit
4b5079f4b7
@ -458,8 +458,6 @@ int phar_wrapper_mkdir(php_stream_wrapper *wrapper, char *url_from, int mode, in
|
||||
|
||||
if ((e = phar_get_entry_info_dir(phar, resource->path + 1, strlen(resource->path + 1), 2, &error TSRMLS_CC))) {
|
||||
/* directory exists, or is a subdirectory of an existing file */
|
||||
efree(e->filename);
|
||||
efree(e);
|
||||
php_stream_wrapper_log_error(wrapper, options TSRMLS_CC, "phar error: cannot create directory \"%s\" in phar \"%s\", directory already exists", resource->path+1, resource->host);
|
||||
php_url_free(resource);
|
||||
return FAILURE;
|
||||
|
@ -33,11 +33,15 @@ mkdir($pname . '/fails');
|
||||
ini_set('phar.readonly', 0);
|
||||
// create new phar by mkdir
|
||||
mkdir('phar://' . dirname(__FILE__) . '/ok.phar/fails');
|
||||
mkdir('phar://' . dirname(__FILE__) . '/ok.phar/fails');
|
||||
file_put_contents(dirname(__FILE__) . '/oops.phar', '<?php this should screw em up __HALT_COMPILER();');
|
||||
mkdir('phar://' . dirname(__FILE__) . '/oops.phar/fails');
|
||||
?>
|
||||
===DONE===
|
||||
--CLEAN--
|
||||
<?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); ?>
|
||||
<?php unlink(dirname(__FILE__) . '/ok.phar'); ?>
|
||||
<?php unlink(dirname(__FILE__) . '/oops.phar'); ?>
|
||||
<?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.1.phar.php'); ?>
|
||||
<?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.2.phar.php'); ?>
|
||||
--EXPECTF--
|
||||
@ -50,4 +54,8 @@ bool(true)
|
||||
bool(false)
|
||||
|
||||
Warning: mkdir(): phar error: cannot create directory "phar://%sdir.phar.php/fails", write operations disabled in %sdir.php on line %d
|
||||
|
||||
Warning: mkdir(): phar error: cannot create directory "fails" in phar "%sok.phar", directory already exists in %sdir.php on line %d
|
||||
|
||||
Warning: mkdir(): internal corruption of phar "%soops.phar" (truncated manifest at stub end) in %sdir.php on line %d
|
||||
===DONE===
|
Loading…
Reference in New Issue
Block a user