diff options
author | Anatol Belski <ab@php.net> | 2017-12-14 16:18:33 +0100 |
---|---|---|
committer | Anatol Belski <ab@php.net> | 2017-12-14 16:18:33 +0100 |
commit | 71eaf0d97f173093253163db8c4720bd62387e34 (patch) | |
tree | 423579c405ed22e78c60cfd0e92a2961f377d86b /ext | |
parent | 1db8402208055ac4fc00ef16dc1a7c2ec097849c (diff) | |
parent | ed210c186abf440923b91c6bae04e9efda6caa10 (diff) | |
download | php-git-71eaf0d97f173093253163db8c4720bd62387e34.tar.gz |
Merge branch 'PHP-7.2'
* PHP-7.2:
Fixed bug #75679 Path 260 character problem
Diffstat (limited to 'ext')
-rw-r--r-- | ext/standard/tests/file/bug75679.phpt | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/ext/standard/tests/file/bug75679.phpt b/ext/standard/tests/file/bug75679.phpt new file mode 100644 index 0000000000..af44565c45 --- /dev/null +++ b/ext/standard/tests/file/bug75679.phpt @@ -0,0 +1,66 @@ +--TEST-- +Bug #75679 Path 260 character problem +--FILE-- +<?php +$d = dirname(__FILE__); +$Files2Report = + [ + str_pad ($d . '/' . str_repeat (str_pad ('bug75679_path_259_characters_long_', 100, '_') . '/', 1), 259, '_') => [], + str_pad ($d . '/' . str_repeat (str_pad ('bug75679_path_260_characters_long_', 100, '_') . '/', 1), 260, '_') => [], + str_pad ($d . '/' . str_repeat (str_pad ('bug75679_path_261_characters_long_', 100, '_') . '/', 1), 261, '_') => [], + ]; +foreach ($Files2Report as $file => &$Report) + { + $Report = ['strlen' => strlen ($file), 'result' => 'nok']; + + if (! is_dir (dirname ($file))) mkdir (dirname ($file), 0777, true); + if (copy (__FILE__, $file) && is_file ($file)) + { + $Report['result'] = 'ok'; + } + + print_r ($Report); + } + + +?> +==DONE== +--CLEAN-- +<?php +$d = dirname(__FILE__); +$Files2Report = + [ + str_pad ($d . '/' . str_repeat (str_pad ('bug75679_path_259_characters_long_', 100, '_') . '/', 1), 259, '_') => [], + str_pad ($d . '/' . str_repeat (str_pad ('bug75679_path_260_characters_long_', 100, '_') . '/', 1), 260, '_') => [], + str_pad ($d . '/' . str_repeat (str_pad ('bug75679_path_261_characters_long_', 100, '_') . '/', 1), 261, '_') => [], + ]; +foreach ($Files2Report as $file => &$Report) +{ + if (is_file($file)) { + unlink($file); + } + + $d1 = dirname($file); + while ($d1 != $d) { + rmdir($d1); + $d1 = dirname($d1); + } +} +?> +--EXPECT-- +Array +( + [strlen] => 259 + [result] => ok +) +Array +( + [strlen] => 260 + [result] => ok +) +Array +( + [strlen] => 261 + [result] => ok +) +==DONE== |