mirror of
https://github.com/nlohmann/json.git
synced 2026-09-01 14:07:14 +00:00
Tighten resize() postcondition assert from >= to ==
std::vector::resize(n) (and string_t's resize) is required to make size() exactly n; only capacity() is permitted to overshoot. The destination-size assert in get_bytes should reflect that exact guarantee rather than a weaker `>=`. Signed-off-by: Niels Lohmann <mail@nlohmann.me> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
0c8ec0a2fc
commit
e36340da39
@@ -13176,9 +13176,9 @@ class binary_reader
|
||||
: chunk_size;
|
||||
const std::size_t old_size = result.size();
|
||||
result.resize(old_size + wanted);
|
||||
// the destination now has room for `wanted` bytes at offset
|
||||
// old_size, which is what get_elements() is allowed to write
|
||||
JSON_ASSERT(result.size() >= old_size + wanted);
|
||||
// resize() is required to make size() exactly old_size + wanted;
|
||||
// that is the room get_elements() is allowed to write into
|
||||
JSON_ASSERT(result.size() == old_size + wanted);
|
||||
const std::size_t bytes_read = ia.get_elements(&result[old_size], wanted);
|
||||
chars_read += bytes_read;
|
||||
if (JSON_HEDLEY_UNLIKELY(bytes_read < wanted))
|
||||
|
||||
Reference in New Issue
Block a user