跳到主要内容
uencoder

Double Free

双重释放是对同一指针调用 free 两次,破坏堆元数据可导致任意写或崩溃。

用途

理解双重释放对堆管理器的破坏与防御,是内存安全常见缺陷。

机制

第二次 free 同一指针时堆管理器将已释放块再次加入空闲链表,导致空闲链表环或重叠块,后续 malloc 可返回重叠内存。防御:置空指针、引用计数。

用例

  • 堆安全分析
  • 内存管理审计
  • C/C++ 安全

相关工具

参考链接