Как использовать информацию с awk или gawk?

Похоже, это была проблема, существовавшая в LShell 0.9.15, ограниченной оболочке, реализованной на python.

Уязвимая функция называлась check_path(), которая использовалась для проверки того, разрешен ли пользователю доступ к заданному пути в командной строке.

Проблема заключалась в том, что эта функция использовала eval()как средство для удаления кавычек из командной строки, и это также с радостью выполнило бы любое допустимое выражение Python.

        for item in line:
            # remove potential quotes
            try:
                item = eval(item)
            except:
                pass

Позже эта проблема была устранена в следующем коммите путем замены вызова eval()подстановкой регулярного выражения:https://github.com/ghantoos/lshell/commit/4e05ac2e9c12142beed0e0fa16331ee0fd7dbd42#diff-edb4dda47bc5b086988a93df2615df6f

0
10.06.2019, 09:27
1 ответ

ИМХО это ошибка в документации. Раздел Использование Константных регулярных выражений (6.1.2.1)предшествует разделу Строковые функции (9.1.3 ), который содержит актуальную gensubдокументацию. Глядя на источник:

@cindexgawkfunc{gensub}
@cindexawkfunc{sub}
@cindexawkfunc{gsub}
Constant regular expressions are also used as the first argument for
the @code{gensub()}, @code{sub()}, and @code{gsub()} functions, as the
second argument of the @code{match()} function,

Это первое появление @cindexgawkfunc{gensub}, второе — это фактическая документация по функциям . Они должны были использовать другой ярлык для первого экземпляра.

2
28.01.2020, 02:30

Теги

Похожие вопросы