unlink
Code
Grafiese Verduideliking
Kyk na hierdie uitstekende grafiese verduideliking van die unlink-proses:
Sekuriteitskontroles
Kontroleer of die aangeduide grootte van die blok dieselfde is as die prev_size wat in die volgende blok aangedui word
Kontroleer ook dat
P->fd->bk == P
enP->bk->fw == P
As die blok nie klein is nie, kontroleer dat
P->fd_nextsize->bk_nextsize == P
enP->bk_nextsize->fd_nextsize == P
Lekke
'n Ongekoppelde blok skoonmaak nie die toegewysde adresse nie, dus deur toegang daartoe te hê, is dit moontlik om sekere interessante adresse te lek:
Libc-lekke:
As P in die kop van die dubbelgekoppelde lys geleë is, sal
bk
namalloc_state
in libc wysAs P aan die einde van die dubbelgekoppelde lys geleë is, sal
fd
namalloc_state
in libc wysWanneer die dubbelgekoppelde lys slegs een vry blok bevat, is P in die dubbelgekoppelde lys, en kan beide
fd
enbk
die adres binnemalloc_state
lek.
Heap-lekke:
As P in die kop van die dubbelgekoppelde lys geleë is, sal
fd
na 'n beskikbare blok in die heap wysAs P aan die einde van die dubbelgekoppelde lys geleë is, sal
bk
na 'n beskikbare blok in die heap wysAs P in die dubbelgekoppelde lys is, sal beide
fd
enbk
na 'n beskikbare blok in die heap wys
Last updated