[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