Данное диагностическое правило основано на руководстве MISRA (Motor Industry Software Reliability Association) по разработке программного обеспечения.
Анализатор выдаст предупреждение, если встретит использование функций и операторов выделения \ освобождения динамической памяти, таких как 'malloc'; 'realloc'; 'calloc'; 'free'; 'new'; 'delete'.
Функции работы с динамической памятью являются потенциальным источником проблем, так как их неправильное использование может привести к утечкам памяти, неопределённому поведению и прочим ошибкам. Более того – это может стать причиной возникновения уязвимости в приложении.
Пример кода, на который анализатор выдаст предупреждение:
int* imalloc(size_t cnt)
{
return (int*)malloc(cnt * sizeof(int));
}
Для C анализатор также выдаст предупреждение, если обнаружит определение макроса с одним из соответствующих имён.
Данная диагностика классифицируется как:
|