Linux C программа использующая filename в качестве аргумента
Следующая программа Linux C принимает имя файла в качестве аргумента каковы проблемы безопасности с этим?
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char *argv[]) { char buf[128]; if (argc != 2) { fprintf(stderr, "usage: %s <filename>\n", argv[0]); exit(1); } strcpy(buf, "cat " ); strcat(buf, argv[1]); system(buf); return 0; }
Что я уже пробовал:
Я просто новичок в программировании Linux C и все еще копаюсь в нем.
Разве большинство команд не используют имена файлов в качестве аргументов?