Skip to content

Commit 8ba53ae

Browse files
ronagRafaelGSS
authored andcommitted
buffer: properly apply dst offset and src length on fast path
Refs: #54311 (comment) PR-URL: #54391 Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Jake Yuesong Li <jake.yuesong@gmail.com>
1 parent 0b16af1 commit 8ba53ae

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

src/node_buffer.cc

+4-3
Original file line numberDiff line numberDiff line change
@@ -1479,11 +1479,12 @@ uint32_t FastWriteString(Local<Value> receiver,
14791479
CHECK(offset <= dst.length());
14801480
CHECK(dst.length() - offset <= std::numeric_limits<uint32_t>::max());
14811481

1482-
max_length = std::min<uint32_t>(dst.length() - offset, max_length);
1482+
const auto size = std::min(
1483+
{static_cast<uint32_t>(dst.length() - offset), max_length, src.length});
14831484

1484-
memcpy(dst_data, src.data, max_length);
1485+
memcpy(dst_data + offset, src.data, size);
14851486

1486-
return max_length;
1487+
return size;
14871488
}
14881489

14891490
static v8::CFunction fast_write_string(v8::CFunction::Make(FastWriteString));

0 commit comments

Comments
 (0)