The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

В скрипте инициализации RHEL допущена ошибка, приводящая к у..., opennews (ok), 24-Мрт-15, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


124. "В скрипте инициализации RHEL допущена ошибка, приводящая к у..."  +2 +/
Сообщение от Аноним (-), 24-Мрт-15, 17:34 
> Такая строчка — бомба замедленного действия. Все-таки sh страшный язык. Удобный, но страшный.

Будто бы написанная в systemd-блобе в виде strcpy(stpcpy(stpcpy(execcmd, "rm -rf "), getenv("SQUID_PIDFILE_DIR")), "/*") или где угодно на другом языке она была бы безопаснее...

Ответить | Правка | Наверх | Cообщить модератору

234. "В скрипте инициализации RHEL допущена ошибка, приводящая к у..."  –1 +/
Сообщение от Tav (ok), 24-Мрт-15, 23:40 
Не знаю, как это написано в systemd (не о нем речь), но конструировать сложные объекты (будь то пути, запросы, веб-страницы или что-то еще) путем конкатенации или подстановки строк неправильно и опасно (по крайней мере, когда речь идет не о сиюминутных скриптах, а о коде, который поддерживается долго). Язык должен предоставлять необходимые абстракции (в этом и заключается смысл ЯП: предоставление абстракций и средств для их построения).

Ну вот пример (Racket):

(build-path "a" "b" "c")
#<path:a/b/c>

(build-path "a" "/b" "c")
build-path: absolute path cannot be added to a path

(build-path "" "b" "c")      
build-path: path element is an empty string

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру