Skip to content

Commit

Permalink
buffer: properly apply dst offset and src length on fast path
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
ronag authored and RafaelGSS committed Aug 21, 2024
1 parent 0b16af1 commit 8ba53ae
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions src/node_buffer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -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));
Expand Down

0 comments on commit 8ba53ae

Please sign in to comment.