]> granicus.if.org Git - php/commitdiff
fixed #28899 mb_substr() and substr() work differently when mbstring.func_overload...
authorRui Hirokawa <hirokawa@php.net>
Fri, 23 Dec 2005 11:14:54 +0000 (11:14 +0000)
committerRui Hirokawa <hirokawa@php.net>
Fri, 23 Dec 2005 11:14:54 +0000 (11:14 +0000)
ext/mbstring/mbstring.c

index 14c662d8e5f2d118a2608aa80b18053b5c88a7d3..999397af895facaf66e1215a727f59387e3c65d5 100644 (file)
@@ -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 */