From: Nikita Popov Date: Fri, 4 Aug 2017 20:17:34 +0000 (+0200) Subject: Check for empty string in mb_ord() X-Git-Tag: php-7.2.0beta3~42 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6b73b2d6ebede318b5baa21ffae8aa3744762958;p=php Check for empty string in mb_ord() --- diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c index 57e438429d..d2e778bff5 100644 --- a/ext/mbstring/mbstring.c +++ b/ext/mbstring/mbstring.c @@ -5074,6 +5074,11 @@ static inline zend_long php_mb_ord(const char* str, size_t str_len, const char* return -1; } + if (str_len == 0) { + php_error_docref(NULL, E_WARNING, "Empty string"); + return -1; + } + { long orig_illegalchars = MBSTRG(illegalchars); MBSTRG(illegalchars) = 0; diff --git a/ext/mbstring/tests/mb_chr_ord.phpt b/ext/mbstring/tests/mb_chr_ord.phpt index 613f2e7f42..153699b1b0 100644 --- a/ext/mbstring/tests/mb_chr_ord.phpt +++ b/ext/mbstring/tests/mb_chr_ord.phpt @@ -6,7 +6,14 @@ mb_chr() and mb_ord() --EXPECTF-- @@ -33,6 +34,9 @@ Warning: mb_ord(): Unsupported encoding "jis" %s 12 Warning: mb_ord(): Unsupported encoding "cp50222" %s 13 Warning: mb_ord(): Unsupported encoding "utf-7" %s 14 + +Warning: mb_ord(): Empty string in %s on line %d +bool(false) bool(false) bool(false) bool(false)