glibc的malloc算法中,对于小内存的重复释放检测不完善,如果相同大小内存交叉多次释放时,无法检测出重复释放。
测试环境:
glibc版本4.4.1
测试代码
#include <stdio.h>
main()
{
int *a = malloc(1);
int *b = malloc(1);
int *c = NULL;
printf("a = %p, b = %p\r\n", a, b);
glibc的malloc算法中,对于小内存的重复释放检测不完善,如果相同大小内存交叉多次释放时,无法检测出重复释放。
测试环境:
glibc版本4.4.1
测试代码
#include <stdio.h>
main()
{
int *a = malloc(1);
int *b = malloc(1);
int *c = NULL;
printf("a = %p, b = %p\r\n", a, b);