# V2635. MISRA. The function with the 'system' name should not be used.

Данное диагностическое правило основано на руководстве MISRA (Motor Industry Software Reliability Association) по разработке программного обеспечения.

Правило актуально для языка C.

Функция `system` не должна быть использована, и ни один макрос с подобным именем не должен быть раскрыт.

Использование этой функции может привести к уязвимостям, если переданный аргумент не был корректно проверен. Злоумышленник может выполнять произвольные команды или считывать и изменять данные в любом месте системы.

Пример кода, на который анализатор выдаст предупреждение:

    void funcEx00()
    {
      system("mkdir tmp_dir");
      system("chmod 777 ./myfile");
    }

Также анализатор будет выдавать предупреждения на использование макросов с соответствующим именем:

    #define system printf("msg\n");
    void PositiveTestMacro()
    {
      system("gcc --version");
    }

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

CWE-676 MISRA-C-2012-21.21 MISRA-C-2023-21.21