V2513. MISRA. Unbounded functions performing string operations should not be used.


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

Найденные ошибки

Проверено проектов
346
Собрано ошибок
13 188

А ты совершаешь ошибки в коде?

Проверь с помощью
PVS-Studio

Статический анализ
кода для C, C++, C#
и Java

goto PVS-Studio;