diff options
author | Anatol Belski <ab@php.net> | 2017-12-14 16:16:50 +0100 |
---|---|---|
committer | Anatol Belski <ab@php.net> | 2017-12-14 16:16:50 +0100 |
commit | 4c0af1fbd41761524682f59c96f2c49e0257298c (patch) | |
tree | 83b5b8ecaa4aa8323686de12f097cd0997cb9100 /ext | |
parent | 580bae4a2c5997fbc0c7ef87304e8814c5576aeb (diff) | |
download | php-git-4c0af1fbd41761524682f59c96f2c49e0257298c.tar.gz |
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== |