Files
drupal11-ddev/vendor/pear/archive_tar/tests/evil_symlink_win.phpt
2025-10-08 11:39:17 -04:00

25 lines
1017 B
PHP

--TEST--
tests extraction of out-of-path symlink with a windows path
--SKIPIF--
--FILE--
<?php
require_once dirname(__FILE__) . '/setup.php.inc';
$extract_target = dirname(__FILE__) . '/evil_symlink_win';
mkdir($extract_target, 0777, TRUE);
$tar = new Archive_Tar(dirname(__FILE__) . '/evil_symlink_win.tar');
$tar->extract($extract_target);
// On Windows dirname() will have used backslashes but the error messages do not.
$extract_target = str_replace('\\', '/', $extract_target);
$phpunit->assertErrors(array(array('package' => 'PEAR_Error', 'message' => 'Out-of-path file extraction {' . $extract_target . '/evil.txt --> C:\windows\system.ini}')), 'after 1');
// N.B. file_exists() typically will not detect a broken symbolic link
$phpunit->assertFalse(is_link($extract_target . '/evil.txt'), 'Out-of-path symlink should not have succeeded');
echo 'tests done';
?>
--CLEAN--
<?php
@unlink(dirname(__FILE__) . '/evil_symlink_win/evil.txt');
rmdir(dirname(__FILE__) . '/evil_symlink_win');
?>
--EXPECT--
tests done