# 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;
    }

Данная диагностика классифицируется как:

CWE-676 MISRA-CPP-2008-18.0.5