unlink
कोड
चित्रित स्पष्टीकरण
जांचें इस unlink प्रक्रिया के शानदार चित्रित स्पष्टीकरण को:
सुरक्षा जांच
जांचें कि टुकड़े का संकेतित आकार अगले टुकड़े में संकेतित पिछले आकार के समान है
यह भी जांचें कि
P->fd->bk == P
औरP->bk->fw == P
अगर टुकड़ा छोटा नहीं है, तो जांचें कि
P->fd_nextsize->bk_nextsize == P
औरP->bk_nextsize->fd_nextsize == P
लीक्स
एक अनलिंक किया गया टुकड़ा आवंटित पतों को साफ नहीं कर रहा है, इसलिए उसे पढ़ने की पहुंच होने पर कुछ दिलचस्प पतों को लीक करना संभव है:
Libc लीक:
यदि P डबली लिंक्ड सूची के शीर्ष में स्थित है, तो
bk
libc
मेंmalloc_state
को पॉइंट करेगायदि P डबली लिंक्ड सूची के अंत में स्थित है, तो
fd
libc
मेंmalloc_state
को पॉइंट करेगाजब डबली लिंक्ड सूची में केवल एक फ्री टुकड़ा होता है, P डबली लिंक्ड सूची में होता है, और दोनों
fd
औरbk
malloc_state
के अंदर पते को लीक कर सकते हैं।
हीप लीक:
यदि P डबली लिंक्ड सूची के शीर्ष में स्थित है, तो
fd
हीप में एक उपलब्ध टुकड़े को पॉइंट करेगायदि P डबली लिंक्ड सूची के अंत में स्थित है, तो
bk
हीप में एक उपलब्ध टुकड़े को पॉइंट करेगायदि P डबली लिंक्ड सूची में है, तो दोनों
fd
औरbk
हीप में एक उपलब्ध टुकड़े को पॉइंट करेंगे
Last updated