diff --git a/src/node_buffer.cc b/src/node_buffer.cc index 0e1881eeb5f16d..2cbcb5461e52d6 100644 --- a/src/node_buffer.cc +++ b/src/node_buffer.cc @@ -1479,11 +1479,12 @@ uint32_t FastWriteString(Local receiver, CHECK(offset <= dst.length()); CHECK(dst.length() - offset <= std::numeric_limits::max()); - max_length = std::min(dst.length() - offset, max_length); + const auto size = std::min( + {static_cast(dst.length() - offset), max_length, src.length}); - memcpy(dst_data, src.data, max_length); + memcpy(dst_data + offset, src.data, size); - return max_length; + return size; } static v8::CFunction fast_write_string(v8::CFunction::Make(FastWriteString));