unlink
Code
Grafičko Objašnjenje
Pogledajte ovo odlično grafičko objašnjenje procesa unlink:
Bezbednosne Provere
Proverite da li je naznačena veličina chunk-a ista kao prev_size naznačen u sledećem chunk-u
Takođe proverite da
P->fd->bk == P
iP->bk->fw == P
Ako chunk nije mali, proverite da
P->fd_nextsize->bk_nextsize == P
iP->bk_nextsize->fd_nextsize == P
Curjenja
Unlinked chunk ne čisti alocirane adrese, tako da, imajući pristup da ga pročitate, moguće je curiti neke zanimljive adrese:
Libc curenja:
Ako je P smešten u glavi dvostruko povezanog spiska,
bk
će pokazivati namalloc_state
u libcAko je P smešten na kraju dvostruko povezanog spiska,
fd
će pokazivati namalloc_state
u libcKada dvostruko povezani spisak sadrži samo jedan slobodan chunk, P je u dvostruko povezanom spisku, i oba
fd
ibk
mogu curiti adresu unutarmalloc_state
.
Curenja iz heap-a:
Ako je P smešten u glavi dvostruko povezanog spiska,
fd
će pokazivati na dostupni chunk u heap-uAko je P smešten na kraju dvostruko povezanog spiska,
bk
će pokazivati na dostupni chunk u heap-uAko je P u dvostruko povezanom spisku, oba
fd
ibk
će pokazivati na dostupni chunk u heap-u
Last updated