LINUX.ORG.RU

Сообщения tentaclius

 

безопасное встраивание ficl

Форум — Development

Hi all,

Хочу попробовать внедрить реализацию FORTH-а - ficl в одно приложение. Нравится в нем буквально все: простота embedding-а, гибкий синтаксис, который очень здорово можно пристроить в роли командного языка, однако есть одно но: ficl беспощадно падает при некорректной работе с адресами.

Т.е. например

0 1234 !

приведет к обвалу ficl-а и, соответственно, процесса, в котором этот ficl-интерпретатор вызывался.

Все логично, форт есть форт. Но выносить такие возможности на уровень пользовательских скриптов не хочется. Может кто подскажет, как наиболее адекватно можно (можно-ли) защитить программу от такого...

Что первое приходит на ум:

1. вынести форт в отдельный процесс, обмениваться с основным процессом сообщениями; позволить ему погибнуть при SIGSEGV, рестартовать по получении сигнала о гибели потомка, вроде как по модели Erlang; насколько я могу понять, подобным образом действует FTH - наследник FICL-а;

2. ограничить набор слов доступных пользователю определенным словарем, ограничивающим свободу самореализации;

1-ое выглядит не то чтобы очень трудоемко, но как-то громоздко, код изолирования ficl-а в отдельный процесс наверняка получится значительно больше собственно кода интеграции. 2-е решение кажется очень уж негибким и так-же не лишенным громоздкости, ибо предется оборачивать почти все стандартные слова.

Подскажите, кто сталкивался... наверняка есть способ проще.

tentaclius
()

Arch, Gnome+Xmonad

Галерея — Скриншоты

Домашний ноутбук. Arch GNU/Linux, Gnome+XMonad.

Чувствую себя весьма комфортно в таком окружении. Практически всегда работаю с окнами в fullscreen layout, за редким исключением, когда нужны два/три окна... Для запуска приложений в основном используется dmenu.

К сожалению, в XMonad (как и в аналогичных wm-ах) крайне коряво работают Java приложения (и export AWT_TOOLKIT=MToolkit прокатывает далеко не всегда) - приходится переключаться на metacity, для чего существует кнопка на панельке...

Со шрифтами, честно, особо не парился - все дефолтное.

 , ,

tentaclius
()

RSS подписка на новые темы