/* lameprogram.c – Hal Flynn /* does not perform sufficient checks for a */ /* file before opening it and storing data */ #include #include int main() { char a[] = “This is my own special junk data storage.\n”; char junkpath[] = “/tmp/junktmp”; FILE *fp; fp = fopen(junkpath, “w”); fputs(a, fp); fclose(fp); unlink(junkpath); return(0);
Эта программа создает файл /tmp/junktmp без первоначальной проверки его существования.
Пусть во время выполнения программы, создающей небезопасный временный файл, создаваемый файл уже существует. Тогда файл, указанный в символической связи, будет или перезаписан, или в конец этого файла будут добавлены новые данные при условии, если пользователь, выполняющий потенциально опасную программу, имеет право на запись в файл. Рисунки 3.5 и 3.6 демонстрируют пример использования подобной программы пользователем