From: Reeze Xia Date: Fri, 23 Jan 2015 09:14:39 +0000 (+0800) Subject: Fix one more leak when wrong $needle type provide of strripos X-Git-Tag: PRE_PHP7_REMOVALS~25^2~19^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bdfe4d65584299fe5726fe4735d5b37d1359f66e;p=php Fix one more leak when wrong $needle type provide of strripos --- diff --git a/ext/standard/string.c b/ext/standard/string.c index 4f0a6ec6ac..d6c2a6c3da 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -2114,6 +2114,7 @@ PHP_FUNCTION(strripos) needle = Z_STR_P(zneedle); } else { if (php_needle_char(zneedle, ord_needle->val) != SUCCESS) { + STR_ALLOCA_FREE(ord_needle, use_heap); RETURN_FALSE; } ord_needle->val[1] = '\0'; diff --git a/ext/standard/tests/strings/strripos.phpt b/ext/standard/tests/strings/strripos.phpt index eb4e70bd35..924505f6c9 100644 --- a/ext/standard/tests/strings/strripos.phpt +++ b/ext/standard/tests/strings/strripos.phpt @@ -15,6 +15,9 @@ strripos() function var_dump(@strripos("a", "")); var_dump(@strripos("", "a")); var_dump(@strripos("\\\\a", "\\a")); + + $fp = fopen(__FILE__, "r"); + var_dump(@strripos("", $fp)); ?> --EXPECT-- int(5) @@ -30,4 +33,5 @@ bool(false) bool(false) bool(false) int(1) +bool(false)