On 08/26/13 21:53, Ruslan Zakirov wrote:

    В 5.18 флаг taint ставится даже на числа (IV) и похоже убрать его можно
    только через XS. По крайней мере $i = int($i) этот флаг не чистит.


А как вы получили IV сразу и с флагом, но без строкового представления?


my $x = oct ($ARGV[0]);
Dump($x);

На 5.14 тоже пишет
MG_TYPE = PERL_MAGIC_taint(t)

Почему с 5.10 до 5.16 код работал, а на 5.18 падает с ошибкой Insecure dependency, буду смотреть. Видимо где то в другом месте разное поведение.


    Это bug или feature? Если feature то вреда от неё больше чем пользы.


В 5.16 тоже самое. the only way to bypass the tainting mechanism is by
referencing subpatterns from a regular expression match.

Проверять результат int/oct через regexp это какой то костыль IMHO.
Если уж и делать проверку числа, то через > и <
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить