From bdfe4d65584299fe5726fe4735d5b37d1359f66e Mon Sep 17 00:00:00 2001 From: Reeze Xia Date: Fri, 23 Jan 2015 17:14:39 +0800 Subject: [PATCH] Fix one more leak when wrong $needle type provide of strripos --- ext/standard/string.c | 1 + ext/standard/tests/strings/strripos.phpt | 4 ++++ 2 files changed, 5 insertions(+) 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) -- 2.40.0