https://jkilopu.github.io/2021/05/12/glibc各版本的堆保护/

2.23

fastbin:对size和对应fastbinsize的校验

smallbin:完整性的检查(并不完整)

/code bck→fd==victim

unsortedbin:检查victim size是否合理

对bck→fd是否等于victim进行校验(甚至堆块切割的时候也有校验)

unlink:对双向链表(largebin)增加对完整性的校验

/code if (__builtin_expect (fd->bk != p || bk->fd != p, 0)) malloc_printerr ("corrupted double-linked list");

对largebin 增加对nextsize系列的完整性校验

2.27

tcache:最原始状态 并无什么校验

unlink:新增对presize和size的一致性校验 /code if (chunksize (p) != prev_size (next_chunk (p))) malloc_printerr ("corrupted size vs.

2.28∶

unsortedbin:新增对链表完整性的校验

也就是会校验victim→fd是否等于unsortedbin头 不影响unsortedbin写入一个大值

2.29:

tcache:结构体新增key字段(放在了bk字段)导致无法随意分配