From d637e319336bc2ccde7c34e481c338e0a096ab37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A9ter=20G=C3=A1l?= Date: Mon, 11 Jun 2018 03:19:39 +0200 Subject: On simple strings the utf8 substring copy api call created an assert (#2389) When the `jerry_substring_to_utf8_char_buffer` was called with direct strings the assert incorrectly assumed that the string is a ref counted string and tried to access the refcount value resulting in a failed assert. Added direct string check for the underlying implementation and created a test case for such simple string. JerryScript-DCO-1.0-Signed-off-by: Peter Gal pgal.u-szeged@partner.samsung.com --- jerry-core/ecma/base/ecma-helpers-string.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'jerry-core') diff --git a/jerry-core/ecma/base/ecma-helpers-string.c b/jerry-core/ecma/base/ecma-helpers-string.c index 2aab6f0a..ac5a403e 100644 --- a/jerry-core/ecma/base/ecma-helpers-string.c +++ b/jerry-core/ecma/base/ecma-helpers-string.c @@ -1226,7 +1226,7 @@ ecma_substring_copy_to_utf8_buffer (const ecma_string_t *string_desc_p, /**< ecm lit_utf8_size_t buffer_size) /**< size of buffer */ { JERRY_ASSERT (string_desc_p != NULL); - JERRY_ASSERT (string_desc_p->refs_and_container >= ECMA_STRING_REF_ONE); + JERRY_ASSERT (ECMA_IS_DIRECT_STRING (string_desc_p) || string_desc_p->refs_and_container >= ECMA_STRING_REF_ONE); JERRY_ASSERT (buffer_p != NULL || buffer_size == 0); lit_utf8_size_t size = 0; -- cgit v1.2.3