summaryrefslogtreecommitdiff
path: root/ext/pcre/tests/bug21732.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/pcre/tests/bug21732.phpt')
-rw-r--r--ext/pcre/tests/bug21732.phpt29
1 files changed, 29 insertions, 0 deletions
diff --git a/ext/pcre/tests/bug21732.phpt b/ext/pcre/tests/bug21732.phpt
new file mode 100644
index 0000000..3dfc41e
--- /dev/null
+++ b/ext/pcre/tests/bug21732.phpt
@@ -0,0 +1,29 @@
+--TEST--
+Bug #21732 (preg_replace() segfaults with invalid parameters)
+--INI--
+error_reporting=0
+--FILE--
+<?php
+class foo {
+ function cb($param) {
+ var_dump($param);
+ return "yes!";
+ }
+}
+
+var_dump(preg_replace('', array(), ''));
+var_dump(preg_replace_callback("/(ab)(cd)(e)/", array(new foo(), "cb"), 'abcde'));
+?>
+--EXPECT--
+bool(false)
+array(4) {
+ [0]=>
+ string(5) "abcde"
+ [1]=>
+ string(2) "ab"
+ [2]=>
+ string(2) "cd"
+ [3]=>
+ string(1) "e"
+}
+string(4) "yes!"