Memory Corruption (fast)
原因
size为fast bin范围。
fastbin取出的chunk的size不属于该fastbin
smallbin double linked list corrupted
原因
size 为smallbin 范围。
smallbin的最后一个被取出的时候发现不为double linked list。
如拿出的那一个为victim,是small bin的最后一个,必须满足victim -> bk -> fd == victim,否则会报这个错误
memory corrption
原因
当unsorted bin中有chunk时,
取unsorted bin的最后一块的时候,必须要求size 大于 2 * SIZE_SZ,且小于system_mem
corrupted unsorted chunks
原因
size 为 large bin范围时,
分配时,对于chunk剩下的空间会被放入last remainder,然后放于unsorted bin,这时如果unsorted bin的第一个fd不等于unsorted bin的位置会报找这个错误。
invalid pointer
原因
在free的时候,如果alignment出错或者chunk address大于-size将会报这个错误
invalid size
原因
在free的时候,如果size大小不合法,比如没有满足对齐,或者小于MINSIZE将会报这个错误
invalid next size (fast)
原因
size是fastbin的时候
如果下一块的chunk size不合法(size大于MINSIZE,小于system_mem),会报这个错误
double free or corruption (fasttop)
原因
fastbin的第一块chunk不能是正在free的chunk
double free or corruption (top)
原因
size是small bin 或 large bin时,
正在free的chunk和topchunk的位置不能相同
double free or corruption (out)
原因
下一个chunk的位置如果超出Heap边界即出错
double free or corruption (!prev)
原因
根据下一块chunk的inuse bit确定当前free的chunk是否能被free,如果不正确则出错
invalid next size (normal)
原因
size是small bin 或 large bin时,确认下一块chunk是否在正确范围(大于2*SIZE_SZ,小于system_mem)
corrupted unsorted chunks
原因
small bin & large bin 在unlink后,准备放入unsorted bin时,会先取第一块chunk,检查该chunk的bk是否为unsoted bin
corrupted double linked list
原因
unlink时的检查,确认p->bk->fd == p以及 p->fd->bk == p
corrupted size vs. prev size
原因
unlink时的检查,确认下一块的prev size和当前块的size相同.