Heap overflow là gì?

Phrase Security
heap smashing heap overrun

Heap overflow là một loại của buffer overflow xảy ra trong vùng nhớ heap. Có hai tình huống có thể dẫn đến heap overflow:

1. Nếu chúng ta liên tục cấp phát (allocate) bộ nhớ (memory) và chúng ta không giải phóng dung lượng bộ nhớ đó sau khi sử dụng, nó có thể dẫn đến rò rỉ bộ nhớ (memory leak) - bộ nhớ vẫn đang được sử dụng nhưng không khả dụng cho các tiến trình (process) khác.


// C program to demonstrate heap overflow
// by continuously allocating memory
#include
  
int main()
{
    for (int i=0; i

2. Nếu chúng ta phân bổ động một số lượng lớn các biến (variable).


// C program to demonstrate heap overflow
// by allocating large memory
#include
  
int main()
{
    int *ptr = (int *)malloc(sizeof(int)*10000000));
}

Learning English Everyday