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