diff --git a/deps/ox/src/ox/ptrarith/nodebuffer.hpp b/deps/ox/src/ox/ptrarith/nodebuffer.hpp index 776e5aae..87a1db66 100644 --- a/deps/ox/src/ox/ptrarith/nodebuffer.hpp +++ b/deps/ox/src/ox/ptrarith/nodebuffer.hpp @@ -219,8 +219,9 @@ typename NodeBuffer::ItemPtr NodeBuffer::ptr(size_t std::size_t itemSpace = m_header.size - itemOffset; auto item = reinterpret_cast(reinterpret_cast(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;