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