mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-02 04:04:19 +00:00
Fix an out-of bounds read when the element is bigger than the buffer.
Ensure the size of the buffer being checked is bigger than the element
of the buffer being checked. The buffer can be triggered when, for
example, the buffer is of length zero and we are checking for:
Verify<uoffset_t>(buf_)
The condition above should fail.
This commit is contained in:
@@ -898,7 +898,7 @@ class Verifier FLATBUFFERS_FINAL_CLASS {
|
||||
|
||||
// Verify any range within the buffer.
|
||||
bool Verify(const void *elem, size_t elem_len) const {
|
||||
return Check(elem >= buf_ && elem <= end_ - elem_len);
|
||||
return Check(elem_len <= (size_t) (end_ - buf_) && elem >= buf_ && elem <= end_ - elem_len);
|
||||
}
|
||||
|
||||
// Verify a range indicated by sizeof(T).
|
||||
|
||||
Reference in New Issue
Block a user