pwnable/정리
heap2.c
ba0bab
2018. 7. 25. 14:59
>> heap2.c
#include <stdio.h>
int main(){
char *a;
char *b;
char *c;
a = malloc(300);
b = malloc(250);
printf("%p\n", a);
printf("%p\n", b);
free(a);
c = malloc(250);
printf("%p\n", c);
return 0;
}
a를 300만큼 malloc 해주고 b를 250 malloc 해준다.
free(a)를 해주고
c를 250만큼 malloc 해주면 a 위치였던 곳에 할당이 된다. 300 -250 = 50 만큼은 리스트에 남아있게 된다.
사이즈가 같은면 똑같이 재할당 해준다.
단, 20바이트 이하는 따로 핸들링이 된다.(fastbin)
그래서 위 내용과 해당하지 않는다.