Указатель, возвращенный в динамическое выделение, не проверяемое на значение NULL
Незащищенное динамическое выделение памяти происходит, когда вы не проверяете после динамического выделения памяти ли выделение памяти, за которым следуют.
Когда память динамически выделяется с помощью malloc
, calloc
или realloc
, это возвращает значение NULL
, если требуемая память не доступна. Если код после выделения получает доступ к блоку памяти, не проверяя на это значение NULL
, этот доступ не защищен от отказов.
Проверяйте возвращаемое значение malloc
, calloc
или realloc
для NULL прежде, чем получить доступ к выделенной ячейке памяти.
int *ptr = malloc(size * sizeof(int)); if(ptr) /* Check for NULL */ { /* Memory access through ptr */ }
Группа: Динамическая память |
Язык: C | C++ |
Значение по умолчанию: 'off' |
Синтаксис командной строки: UNPROTECTED_MEMORY_ALLOCATION |
Влияние: низко |
ID CWE: 253, 690, 789 |