[Moscow.pm] perl 5.18 and taint numbers
Anton Yuzhaninov
citrin на citrin.ru
Пн Авг 26 11:16:05 PDT 2013
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