#1093·oatpp

'BaseObject::set' 中的 OOB 写入

作者: 2rr0r4o3创建于 2026年8月24日更新于 2026年8月24日

总结

DTO 字段偏移量是从最衍生对象的开始计算的,但它们应用于 m_basePointer,该指针在 BaseObject 中初始化,因此保存了 BaseObject 子对象的地址。两者只在 BaseObject 位于偏移量 0 时才相同。没有任何东西强制 DTO_INIT 创建 typedef,也从未检查扩展类型是否为主要基类,因此具有另一个基类的 DTO 会在分配结束后写入其字段。