Указатель, возвращенный в динамическое выделение, не проверяемое на 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 |