summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2017-02-03 17:55:08 +0100
committerNikita Popov <nikita.ppv@gmail.com>2017-02-03 17:55:08 +0100
commit5537a4e2b8b426336e600d833de2ba61bc7b44ef (patch)
tree964969a7454b4c326384428d80a9d291140f964a
parenta0828247259f161302639846d7f03872fb2597e5 (diff)
parent8660e95b4c7a7a84278104bce4ad8270c1ac3464 (diff)
downloadphp-git-5537a4e2b8b426336e600d833de2ba61bc7b44ef.tar.gz
Merge branch 'PHP-7.1'
-rw-r--r--ext/standard/string.c4
-rw-r--r--ext/standard/tests/strings/bug74041.phpt12
2 files changed, 14 insertions, 2 deletions
diff --git a/ext/standard/string.c b/ext/standard/string.c
index 851775503e..3addfbd19d 100644
--- a/ext/standard/string.c
+++ b/ext/standard/string.c
@@ -5276,10 +5276,10 @@ PHP_FUNCTION(substr_count)
if (ac == 4) {
- if (length <= 0) {
+ if (length < 0) {
length += (haystack_len - offset);
}
- if ((length <= 0) || ((size_t)length > (haystack_len - offset))) {
+ if (length < 0 || ((size_t)length > (haystack_len - offset))) {
php_error_docref(NULL, E_WARNING, "Invalid length value");
RETURN_FALSE;
}
diff --git a/ext/standard/tests/strings/bug74041.phpt b/ext/standard/tests/strings/bug74041.phpt
new file mode 100644
index 0000000000..598e46d880
--- /dev/null
+++ b/ext/standard/tests/strings/bug74041.phpt
@@ -0,0 +1,12 @@
+--TEST--
+Bug #74041: substr_count with length=0 broken
+--FILE--
+<?php
+
+var_dump(substr_count("aaa", "a", 0, 0));
+var_dump(substr_count("", "a", 0, 0));
+
+?>
+--EXPECT--
+int(0)
+int(0)