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)

그래서 위 내용과 해당하지 않는다.