diff options
| -rw-r--r-- | ext/standard/string.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/ext/standard/string.c b/ext/standard/string.c index 012de6a611..e1880c93b6 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -826,9 +826,10 @@ void php3_substr(INTERNAL_FUNCTION_PARAMETERS) RETURN_FALSE; } - if ((f + l) < (int)string->value.str.len) { - string->value.str.val[f + l] = '\0'; + if((f+l) > (int)string->value.str.len) { + l = (int)string->value.str.len - f; } + RETVAL_STRINGL(string->value.str.val + f, l, 1); } /* }}} */ |
