buffer: properly apply dst offset and src length on fast path

Refs: https://github.com/nodejs/node/pull/54311#issuecomment-2290453437
PR-URL: https://github.com/nodejs/node/pull/54391
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Jake Yuesong Li <jake.yuesong@gmail.com>
This commit is contained in:
Robert Nagy 2024-08-15 20:31:10 +02:00 committed by GitHub
parent 05495909d7
commit 2c1461541f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1479,11 +1479,12 @@ uint32_t FastWriteString(Local<Value> receiver,
CHECK(offset <= dst.length());
CHECK(dst.length() - offset <= std::numeric_limits<uint32_t>::max());
max_length = std::min<uint32_t>(dst.length() - offset, max_length);
const auto size = std::min(
{static_cast<uint32_t>(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));