diff --git a/runtime/ecma_string-inl.h b/runtime/ecma_string-inl.h index cc4921026464b8ef9533e79bbf94fd63544409a8..1bff12ab0ddede2fcf57689c9ed4e812ec36ab00 100644 --- a/runtime/ecma_string-inl.h +++ b/runtime/ecma_string-inl.h @@ -142,7 +142,8 @@ void EcmaString::WriteData(EcmaString *src, uint32_t start, uint32_t destSize, u } } else { // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic) - if (length != 0 && memcpy_s(GetDataUtf16Writable() + start, destSize, src->GetDataUtf16(), length) != EOK) { + if (length != 0 && memcpy_s(GetDataUtf16Writable() + start, ComputeDataSizeUtf16(destSize), src->GetDataUtf16(), + ComputeDataSizeUtf16(length)) != EOK) { LOG_ECMA(FATAL) << "memcpy_s failed"; UNREACHABLE(); }