Double Free
双重释放是对同一指针调用 free 两次,破坏堆元数据可导致任意写或崩溃。
用途
理解双重释放对堆管理器的破坏与防御,是内存安全常见缺陷。
机制
第二次 free 同一指针时堆管理器将已释放块再次加入空闲链表,导致空闲链表环或重叠块,后续 malloc 可返回重叠内存。防御:置空指针、引用计数。
用例
- 堆安全分析
- 内存管理审计
- C/C++ 安全
双重释放是对同一指针调用 free 两次,破坏堆元数据可导致任意写或崩溃。
理解双重释放对堆管理器的破坏与防御,是内存安全常见缺陷。
第二次 free 同一指针时堆管理器将已释放块再次加入空闲链表,导致空闲链表环或重叠块,后续 malloc 可返回重叠内存。防御:置空指针、引用计数。