Данное диагностическое правило основано на руководстве 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; }
Данная диагностика классифицируется как:
|