Указатель, возвращенный из динамического распределения, не проверен на NULL
или nullptr
значение
Этот дефект возникает, когда вы получаете доступ к динамически выделенной памяти, не проверяя предварительно, успешно ли выполнено предшествующее выделение памяти.
Когда память динамически выделяется с помощью 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 |
Влияние: Низкое |
ИДЕНТИФИКАТОР CWE: 253, 690, 789 |