Небезопасная зависимость с Inline::Python

Что может объяснить это сообщение об ошибке во время компиляции при запуске Inline::Python в -T Режим?

Небезопасная зависимость в открытом состоянии при запуске с ключом -T в строке /usr/local/lib/perl/5.14.2/Inline/Python.pm 193.

Линия 193 - это где Inline::Python открывает $o->{API}{location}, который я принимаю, чтобы быть "Действующим КАТАЛОГОМ".

Я, конечно, использовал необходимые параметры:

use constant _INLINE_DIR_ => '/var/myapp/inline';
use Inline Config => UNTAINT         => 1,
                     NO_UNTAINT_WARN => 1,
                     DIRECTORY       => _INLINE_DIR_;

Я убедился, что /var/myapp/inline и все внутри него доступно для записи всем, очевидно, включая как root, так и пользователя, что приложение setuid 'во время выполнения.

Тот же сценарий работает без проблем на моем компьютере, независимо от того, запускаю ли я от имени пользователя root или нет Inline 0,50 Inline::Python 0.43, но выдает мне эту ошибку, когда я пытаюсь запустить его на сервере, который использует ту же версию Inline::Python и либо версия 0.49 или 0.55 Inline,

1 ответ

Поскольку в разных средах это не так, я уверен, что есть переменная окружения, которая либо Inline или же Inline::Python читает, прежде чем он сделает шаг, запрошенный UNTAINT параметр конфигурации

(В отличие от комментария, я не думаю, что права доступа к файлу могут вызвать это сообщение, только небезопасные зависимости от параметров командной строки или переменных среды)

Учитывая это, я бы начал ваш сценарий с принудительной очистки среды, а затем добавил бы только те переменные среды, которые вам нужны:

%ENV = ();
$ENV{'PATH'} = '/bin:/usr/bin:/usr/local/bin';  # Or whatever's appropriate
$ENV{'PYTHONPATH'} = '/usr/local/lib/python';   # Optional, if appropriate
# ... etc ...
Другие вопросы по тегам