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

Данное диагностическое правило основано на руководстве [MISRA](https://www.misra.org.uk/) \(Motor Industry Software Reliability Association\) по разработке программного обеспечения\.

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

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

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

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

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

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

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