[ox/nodebuffer] Fix bounds checking in Ptr generation
This commit is contained in:
parent
3adf0df9c7
commit
0c7f8c8b5e
5
deps/ox/src/ox/ptrarith/nodebuffer.hpp
vendored
5
deps/ox/src/ox/ptrarith/nodebuffer.hpp
vendored
@ -219,8 +219,9 @@ typename NodeBuffer<size_t, Item>::ItemPtr NodeBuffer<size_t, Item>::ptr(size_t
|
||||
std::size_t itemSpace = m_header.size - itemOffset;
|
||||
auto item = reinterpret_cast<Item*>(reinterpret_cast<uint8_t*>(this) + itemOffset);
|
||||
if (itemOffset >= sizeof(Header) &&
|
||||
itemSpace >= sizeof(Item) &&
|
||||
itemSpace >= item->fullSize()) {
|
||||
itemOffset + itemSpace <= size() &&
|
||||
itemSpace >= sizeof(Item) &&
|
||||
itemSpace >= item->fullSize()) {
|
||||
return ItemPtr(this, m_header.size, itemOffset, item->fullSize());
|
||||
} else {
|
||||
//oxTrace("ox::ptrarith::NodeBuffer::ptr::null") << "itemOffset:" << itemOffset;
|
||||
|
Loading…
x
Reference in New Issue
Block a user