diff options
-rw-r--r-- | ext/mbstring/oniguruma/enc/utf8.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/ext/mbstring/oniguruma/enc/utf8.c b/ext/mbstring/oniguruma/enc/utf8.c index 74122e14bf..9e8478ffc6 100644 --- a/ext/mbstring/oniguruma/enc/utf8.c +++ b/ext/mbstring/oniguruma/enc/utf8.c @@ -91,14 +91,16 @@ is_mbc_newline(const UChar* p, const UChar* end) } static OnigCodePoint -mbc_to_code(const UChar* p, const UChar* end ARG_UNUSED) +mbc_to_code(const UChar* p, const UChar* end) { int c, len; OnigCodePoint n; - len = enclen(ONIG_ENCODING_UTF8, p); + len = mbc_enc_len(p); + if (len > end - p) len = end - p; + c = *p++; - if (len > 1 && p < end) { + if (len > 1) { len--; n = c & ((1 << (6 - len)) - 1); while (len--) { |