Clamp string reads to buffer size

This commit is contained in:
Chloe Marcec 2021-01-23 18:24:57 +11:00
parent dc18a1261c
commit df42100320

View file

@ -162,9 +162,11 @@ private:
if (length == 0) {
return std::nullopt;
}
std::string output(length, '\0');
std::memcpy(output.data(), data.data() + offset, length);
offset += length;
const auto length_to_read = std::min(length, data.size() - offset);
std::string output(length_to_read, '\0');
std::memcpy(output.data(), data.data() + offset, length_to_read);
offset += length_to_read;
return output;
}