diff --git a/src/node_buffer.cc b/src/node_buffer.cc index 0e1881eeb5f16d..9e7b634720f2bb 100644 --- a/src/node_buffer.cc +++ b/src/node_buffer.cc @@ -1479,9 +1479,10 @@ 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; }