From 283f4759f605249f699f0cc1e1c9a96d97e8d2d8 Mon Sep 17 00:00:00 2001 From: Rui Hirokawa Date: Fri, 23 Dec 2005 11:14:54 +0000 Subject: [PATCH] fixed #28899 mb_substr() and substr() work differently when mbstring.func_overload is enabled. --- ext/mbstring/mbstring.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c index 14c662d8e5..999397af89 100644 --- a/ext/mbstring/mbstring.c +++ b/ext/mbstring/mbstring.c @@ -60,7 +60,6 @@ #include "ext/standard/url.h" #include "main/php_output.h" #include "ext/standard/info.h" - #include "libmbfl/mbfl/mbfl_allocators.h" #include "php_variables.h" @@ -1763,6 +1762,11 @@ PHP_FUNCTION(mb_substr) } } + if (((MBSTRG(func_overload) & MB_OVERLOAD_STRING) == MB_OVERLOAD_STRING) + && (from >= mbfl_strlen(&string))) { + RETURN_FALSE; + } + ret = mbfl_substr(&string, &result, from, len); if (ret != NULL) { RETVAL_STRINGL((char *)ret->val, ret->len, 0); /* the string is already strdup()'ed */ -- 2.50.1