From: Rui Hirokawa Date: Fri, 23 Dec 2005 11:14:54 +0000 (+0000) Subject: fixed #28899 mb_substr() and substr() work differently when mbstring.func_overload... X-Git-Tag: RELEASE_1_0_4~257 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=283f4759f605249f699f0cc1e1c9a96d97e8d2d8;p=php fixed #28899 mb_substr() and substr() work differently when mbstring.func_overload is enabled. --- 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 */