summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorChristoph M. Becker <cmb@php.net>2016-07-28 13:09:09 +0200
committerChristoph M. Becker <cmb@php.net>2016-07-28 13:12:40 +0200
commit18a37eeeece3c8ff88a5c9fff0bc3871cbe37c17 (patch)
treec87352380cdb604d10fd6fafd7140c4589206555 /ext
parentc7a4e37d9771ec212ad58fa344b380cbe6aa92a1 (diff)
parentd276e6a8386a68d57d5dd07c3d7e15de4b03c6b3 (diff)
downloadphp-git-18a37eeeece3c8ff88a5c9fff0bc3871cbe37c17.tar.gz
Merge branch 'PHP-5.6' into PHP-7.0
# Resolved conflicts: # ext/mbstring/php_mbregex.c
Diffstat (limited to 'ext')
-rw-r--r--ext/mbstring/php_mbregex.c3
-rw-r--r--ext/mbstring/tests/bug72691.phpt48
2 files changed, 48 insertions, 3 deletions
diff --git a/ext/mbstring/php_mbregex.c b/ext/mbstring/php_mbregex.c
index 573a5e9b9c..95932e31ae 100644
--- a/ext/mbstring/php_mbregex.c
+++ b/ext/mbstring/php_mbregex.c
@@ -1246,9 +1246,6 @@ _php_mb_regex_ereg_search_exec(INTERNAL_FUNCTION_PARAMETERS, int mode)
php_error_docref(NULL, E_WARNING, "mbregex search failure in mbregex_search(): %s", err_str);
RETVAL_FALSE;
} else {
- if (MBREX(search_regs)->beg[0] == MBREX(search_regs)->end[0]) {
- php_error_docref(NULL, E_WARNING, "Empty regular expression");
- }
switch (mode) {
case 1:
array_init(return_value);
diff --git a/ext/mbstring/tests/bug72691.phpt b/ext/mbstring/tests/bug72691.phpt
new file mode 100644
index 0000000000..d914a508e0
--- /dev/null
+++ b/ext/mbstring/tests/bug72691.phpt
@@ -0,0 +1,48 @@
+--TEST--
+Bug #72691 (mb_ereg_search raises a warning if a match zero-width)
+--SKIPIF--
+<?php
+if (!extension_loaded('mbstring')) die('skip ext/mbstring required');
+?>
+--FILE--
+<?php
+$str = 'foo';
+mb_ereg_search_init($str);
+
+mb_ereg_search('\A');
+var_dump(mb_ereg_search_getpos());
+var_dump(mb_ereg_search_getregs());
+
+mb_ereg_search('\s*');
+var_dump(mb_ereg_search_getpos());
+var_dump(mb_ereg_search_getregs());
+
+mb_ereg_search('\w+');
+var_dump(mb_ereg_search_getpos());
+var_dump(mb_ereg_search_getregs());
+
+mb_ereg_search('\Z');
+var_dump(mb_ereg_search_getpos());
+var_dump(mb_ereg_search_getregs());
+?>
+--EXPECT--
+int(1)
+array(1) {
+ [0]=>
+ string(0) ""
+}
+int(2)
+array(1) {
+ [0]=>
+ string(0) ""
+}
+int(3)
+array(1) {
+ [0]=>
+ string(1) "o"
+}
+int(4)
+array(1) {
+ [0]=>
+ string(0) ""
+}