Данное диагностическое правило основано на руководстве MISRA (Motor Industry Software Reliability Association) по разработке программного обеспечения.
Данное диагностическое правило актуально только для C++. Анализатор выдаст предупреждение, если обнаружит использование следующих функций: 'strcpy'; 'strcmp'; 'strcat'; 'strchr'; 'strspn'; 'strcspn'; 'strpbrk'; 'strrchr'; 'strstr'; 'strtok'; 'strlen'.
Неправильное использование этих функций может стать причиной возникновения неопределенного поведения, так как они не защищены от чтения и записи вне границ буфера.
Пример кода, на который анализатор выдаст предупреждение:
int strcpy_internal(char *dest, const char *source)
{
int exitCode = FAILURE;
if (source && dest)
{
strcpy(dest, source);
exitCode = SUCCESS;
}
return exitCode;
}
Данная диагностика классифицируется как:
|