Merge pull request #9583

92de47f Fix memcpy in byte_slice constructor (Lee *!* Clagett)
This commit is contained in:
luigi1111 2024-12-23 10:58:44 -05:00
commit 731854d39b
No known key found for this signature in database
GPG Key ID: F4ACA0183641E010

View File

@ -152,7 +152,11 @@ namespace epee
{
std::size_t space_needed = 0;
for (const auto& source : sources)
{
if (std::numeric_limits<std::size_t>::max() - space_needed < source.size())
throw std::bad_alloc{};
space_needed += source.size();
}
if (space_needed)
{
@ -162,9 +166,9 @@ namespace epee
for (const auto& source : sources)
{
assert(source.size() <= out.size()); // see check above
std::memcpy(out.data(), source.data(), source.size());
if (out.remove_prefix(source.size()) < source.size())
throw std::bad_alloc{}; // size_t overflow on space_needed
out.remove_prefix(source.size());
}
storage_ = std::move(storage);
}