summaryrefslogtreecommitdiff
path: root/ext/standard/tests/array/bug50006.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/tests/array/bug50006.phpt')
-rw-r--r--ext/standard/tests/array/bug50006.phpt29
1 files changed, 29 insertions, 0 deletions
diff --git a/ext/standard/tests/array/bug50006.phpt b/ext/standard/tests/array/bug50006.phpt
new file mode 100644
index 000000000..f03a00262
--- /dev/null
+++ b/ext/standard/tests/array/bug50006.phpt
@@ -0,0 +1,29 @@
+--TEST--
+Bug #50006 (Segfault caused by uksort())
+--FILE--
+<?php
+
+$data = array(
+ 'bar-bazbazbaz.' => 0,
+ 'bar-bazbazbaz-' => 0,
+ 'foo' => 0,
+);
+uksort($data, 'magic_sort_cmp');
+print_r($data);
+
+function magic_sort_cmp($a, $b) {
+ $a = substr($a, 1);
+ $b = substr($b, 1);
+ if (!$a) return $b ? -1 : 0;
+ if (!$b) return 1;
+ return magic_sort_cmp($a, $b);
+}
+
+?>
+--EXPECTF--
+Array
+(
+ [foo] => 0
+ [bar-bazbazbaz-] => 0
+ [bar-bazbazbaz.] => 0
+)