]> granicus.if.org Git - php/commitdiff
- Fixed bug #50006 (Segfault caused by uksort()) [5_2 only]
authorFelipe Pena <felipe@php.net>
Sun, 1 Nov 2009 17:30:55 +0000 (17:30 +0000)
committerFelipe Pena <felipe@php.net>
Sun, 1 Nov 2009 17:30:55 +0000 (17:30 +0000)
ext/standard/tests/array/bug50006.phpt [new file with mode: 0644]

diff --git a/ext/standard/tests/array/bug50006.phpt b/ext/standard/tests/array/bug50006.phpt
new file mode 100644 (file)
index 0000000..f03a002
--- /dev/null
@@ -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
+)