From 6b73b2d6ebede318b5baa21ffae8aa3744762958 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Fri, 4 Aug 2017 22:17:34 +0200 Subject: [PATCH] Check for empty string in mb_ord() --- ext/mbstring/mbstring.c | 5 +++++ ext/mbstring/tests/mb_chr_ord.phpt | 9 ++++++++- ext/mbstring/tests/mb_ord.phpt | 6 +++++- 3 files changed, 18 insertions(+), 2 deletions(-) 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) -- 2.50.1