From b1de93abd6079750cbc79eac541669ee7866edd0 Mon Sep 17 00:00:00 2001 From: Ruben Ayrapetyan Date: Mon, 7 Dec 2015 17:47:52 +0300 Subject: [PATCH] Fix incorrect assertion in lit_utf8_iterator_seek. JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com --- jerry-core/lit/lit-strings.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/jerry-core/lit/lit-strings.cpp b/jerry-core/lit/lit-strings.cpp index e86f9dcaf..039218145 100644 --- a/jerry-core/lit/lit-strings.cpp +++ b/jerry-core/lit/lit-strings.cpp @@ -296,10 +296,13 @@ lit_utf8_iterator_seek (lit_utf8_iterator_t *iter_p, /**< utf-8 string iterator { JERRY_ASSERT (iter_pos.offset <= iter_p->buf_size); #ifndef JERRY_NDEBUG - lit_utf8_byte_t byte = *(iter_p->buf_p + iter_pos.offset); - JERRY_ASSERT ((byte & LIT_UTF8_EXTRA_BYTE_MASK) != LIT_UTF8_EXTRA_BYTE_MARKER); - JERRY_ASSERT (!iter_pos.is_non_bmp_middle || ((byte & LIT_UTF8_4_BYTE_MASK) == LIT_UTF8_4_BYTE_MARKER)); -#endif + if (iter_pos.offset < iter_p->buf_size) + { + lit_utf8_byte_t byte = *(iter_p->buf_p + iter_pos.offset); + JERRY_ASSERT ((byte & LIT_UTF8_EXTRA_BYTE_MASK) != LIT_UTF8_EXTRA_BYTE_MARKER); + JERRY_ASSERT (!iter_pos.is_non_bmp_middle || ((byte & LIT_UTF8_4_BYTE_MASK) == LIT_UTF8_4_BYTE_MARKER)); + } +#endif /* !JERRY_NDEBUG */ iter_p->buf_pos = iter_pos; } /* lit_utf8_iterator_seek */