Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top
>
>
>
V2635. MISRA. The function with the...
menu mobile close menu
Проверка проектов
Дополнительная информация
toggle menu Оглавление

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

04 Апр 2025

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