Heap Functions Security Checks

हैकट्रिक्स का समर्थन करें

अधिक जानकारी के लिए जांचें:

unlink

यह किये गए जांचों का सारांश है:

  • जांचें करें कि चंक का निर्दिष्ट आकार अगले चंक में निर्दिष्ट prev_size के समान है

  • त्रुटि संदेश: corrupted size vs. prev_size

  • यह भी जांचें कि P->fd->bk == P और P->bk->fw == P

  • त्रुटि संदेश: corrupted double-linked list

  • अगर चंक छोटा नहीं है, तो जांचें कि P->fd_nextsize->bk_nextsize == P और P->bk_nextsize->fd_nextsize == P

  • त्रुटि संदेश: corrupted double-linked list (not small)

_int_malloc

अधिक जानकारी के लिए जांचें:

malloc & sysmalloc
  • तेज बिन खोज के दौरान जांचें:

  • अगर चंक मिस-संरेखित है:

  • त्रुटि संदेश: malloc(): unaligned fastbin chunk detected 2

  • अगर आगे का चंक मिस-संरेखित है:

  • त्रुटि संदेश: malloc(): unaligned fastbin chunk detected

  • अगर वापसी चंक का आकार सही नहीं है क्योंकि यह तेज बिन में अपने सूचक में है:

  • त्रुटि संदेश: malloc(): memory corruption (fast)

  • अगर कोई भी चंक टकचेन को भरने के लिए उपयोग किया गया है और यह मिस-संरेखित है:

  • त्रुटि संदेश: malloc(): unaligned fastbin chunk detected 3

  • छोटे बिन खोज के दौरान जांचें:

  • अगर victim->bk->fd != victim:

  • त्रुटि संदेश: malloc(): smallbin double linked list corrupted

  • संयोजन के दौरान जांचें प्रत्येक तेज बिन चंक के लिए:

  • अगर चंक मिस-संरेखित है तो ट्रिगर करें:

  • त्रुटि संदेश: malloc_consolidate(): unaligned fastbin chunk detected

  • अगर चंक का आकार अलग है जो कि इसके सूचक में है क्योंकि यह है:

  • त्रुटि संदेश: malloc_consolidate(): invalid chunk size

  • अगर पिछला चंक उपयोग में नहीं है और पिछला चंक पिछला_चंक द्वारा निर्दिष्ट किए गए आकार से अलग है:

  • त्रुटि संदेश: corrupted size vs. prev_size in fastbins

  • अव्यवस्थित बिन खोज के दौरान जांचें:

  • अगर चंक का आकार अजीब है (बहुत छोटा या बहुत बड़ा):

  • त्रुटि संदेश: malloc(): invalid size (unsorted)

  • अगर अगले चंक का आकार अजीब है (बहुत छोटा या बहुत बड़ा):

  • त्रुटि संदेश: malloc(): invalid next size (unsorted)

  • अगर अगले चंक द्वारा निर्दिष्ट पिछले का आकार चंक के आकार से भिन्न है:

  • त्रुटि संदेश: malloc(): mismatching next->prev_size (unsorted)

  • अगर नहीं victim->bck->fd == victim या नहीं victim->fd == av (arena):

  • त्रुटि संदेश: malloc(): unsorted double linked list corrupted

  • हमेशा आखिरी चेक कर रहे हैं, इसका fd हमेशा अरेना संरचना की ओर इशारा करना चाहिए।

  • अगर अगला चंक इसका पिछला उपयोग में नहीं दिखा रहा है:

  • त्रुटि संदेश: malloc(): invalid next->prev_inuse (unsorted)

  • अगर fwd->bk_nextsize->fd_nextsize != fwd:

  • त्रुटि संदेश: malloc(): largebin double linked list corrupted (nextsize)

  • अगर fwd->bk->fd != fwd:

  • त्रुटि संदेश: malloc(): largebin double linked list corrupted (bk)

  • बड़े बिन (द्वारा सूचक) खोज के दौरान जांचें:

  • bck->fd-> bk != bck:

  • त्रुटि संदेश: malloc(): corrupted unsorted chunks

  • बड़े बिन (अगला बड़ा) खोज के दौरान जांचें:

  • bck->fd-> bk != bck:

  • त्रुटि संदेश: malloc(): corrupted unsorted chunks2

  • शीर्ष चंक का उपयोग करते समय जांचें:

  • chunksize(av->top) > av->system_mem:

  • त्रुटि संदेश: malloc(): corrupted top size

tcache_get_n

  • tcache_get_n में जांचें:

  • अगर चंक मिस-संरेखित है:

  • त्रुटि संदेश: malloc(): unaligned tcache chunk detected

tcache_thread_shutdown

  • tcache_thread_shutdown में जांचें:

  • अगर चंक मिस-संरेखित है:

  • त्रुटि संदेश: tcache_thread_shutdown(): unaligned tcache chunk detected

__libc_realloc

  • __libc_realloc में जांचें:

  • अगर पुराना पॉइंटर मिस-संरेखित है या आकार गलत था:

  • त्रुटि संदेश: realloc(): invalid pointer

_int_free

अधिक जानकारी के लिए जांचें:

free
  • _int_free की शुरुआत के दौरान जांचें:

  • पॉइंटर संरेखित है:

  • त्रुटि संदेश: free(): invalid pointer

  • MINSIZE से अधिक आकार और आकार भी संरेखित है:

  • त्रुटि संदेश: free(): invalid size

  • _int_free टकचेन में जांचें:

  • अगर mp_.tcache_count से अधिक एंट्री हैं:

  • त्रुटि संदेश: free(): too many chunks detected in tcache

  • अगर एंट्री संरेखित नहीं है:

  • त्रुटि संदेश: free(): unaligned chunk detected in tcache 2

  • अगर मुक्त चंक पहले ही मुक्त किया गया था और टकचेन में चंक के रूप में मौजूद है:

  • त्रुटि संदेश: free(): double free detected in tcache 2

  • _int_free तेज बिन में जांचें:

  • अगर चंक का आकार अमान्य है (बहुत बड़ा या छोटा) तो ट्रिगर करें:

  • त्रुटि संदेश: free(): invalid next size (fast)

  • अगर जोड़ा गया चंक पहले से ही तेज बिन के शीर्ष में था:

  • त्रुटि संदेश: double free or corruption (fasttop)

  • अगर शीर्ष पर चंक का आकार उस चंक के आकार से भिन्न है जिसे हम जोड़ रहे हैं:

  • त्रुटि संदेश: invalid fastbin entry (free)

_int_free_merge_chunk

  • _int_free_merge_chunk में जांचें:

  • अगर चंक टॉप चंक है:

  • त्रुटि संदेश: double free or corruption (top)

  • अगला चंक एरीना की सीमाओं के बाहर है:

  • त्रुटि संदेश: double free or corruption (out)

  • अगर चंक को उपयोग के रूप में नहीं चिह्नित किया गया है (पिछले चंक से prev_inuse में):

  • त्रुटि संदेश: double free or corruption (!prev)

  • अगला चंक का आकार बहुत कम या बहुत बड़ा है:

  • त्रुटि संदेश: free(): invalid next size (normal)

  • पिछला चंक उपयोग में नहीं है, तो समेकित करने का प्रयास करेगा। लेकिन, अगर prev_size पिछले चंक में दिखाए गए आकार से भिन्न है:

  • त्रुटि संदेश: corrupted size vs. prev_size while consolidating

_int_free_create_chunk

  • _int_free_create_chunk में जांचें:

  • असंक्षेप्त बिन में एक चंक जोड़ना, जांचें कि unsorted_chunks(av)->fd->bk == unsorted_chunks(av):

  • त्रुटि संदेश: free(): corrupted unsorted chunks

do_check_malloc_state

  • do_check_malloc_state में जांचें:

  • अयोग्य फास्ट बिन चंक:

  • त्रुटि संदेश: do_check_malloc_state(): unaligned fastbin chunk detected

malloc_consolidate

  • malloc_consolidate में जांचें:

  • अयोग्य फास्ट बिन चंक:

  • त्रुटि संदेश: malloc_consolidate(): unaligned fastbin chunk detected

  • गलत फास्ट बिन चंक का आकार:

  • त्रुटि संदेश: malloc_consolidate(): invalid chunk size

_int_realloc

  • _int_realloc में जांचें:

  • आकार बहुत बड़ा या बहुत छोटा है:

  • त्रुटि संदेश: realloc(): invalid old size

  • अगले चंक का आकार बहुत बड़ा या बहुत छोटा है:

  • त्रुटि संदेश: realloc(): invalid next size

Last updated