summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorAnatol Belski <ab@php.net>2017-12-14 16:18:33 +0100
committerAnatol Belski <ab@php.net>2017-12-14 16:18:33 +0100
commit71eaf0d97f173093253163db8c4720bd62387e34 (patch)
tree423579c405ed22e78c60cfd0e92a2961f377d86b /ext
parent1db8402208055ac4fc00ef16dc1a7c2ec097849c (diff)
parented210c186abf440923b91c6bae04e9efda6caa10 (diff)
downloadphp-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.phpt66
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==