[Moscow.pm] Баг в JSON::XS?

Sergey Aleynikov sergey.aleynikov на gmail.com
Ср Ноя 26 15:13:15 PST 2014


Добрый день,

Что именно и когда ответит Леман - непредсказуемо) Я нашел, как
минимум, еще два  места, где модулю сносит стек. Прислать патч, или
попробуете сначала с ним списаться?

Best regards,
Sergey Aleynikov


2014-11-26 20:01 GMT+03:00 Вадим Власов <scripter.vrn на gmail.com>:
> Исследуя новый сериализатор в JSON::XS наткнулся:
>
> $ echo 'use strict;
> use warnings;
> use feature "say";
>
> use JSON::XS;
> my $j=JSON::XS->new->allow_tags;
>
> say "JSON::XS: $JSON::XS::VERSION";
> say "Types::Serialiser: $Types::Serialiser::VERSION";
>
> my $t = $j->encode( Foo->new );
> say $t;
>
> my @t = $j->encode( Foo->new );
>
> package Foo;
> sub new { bless {}, $_[0]; }
> sub FREEZE { ( 123, 456 ); }' | perl
> JSON::XS: 3.01
> Types::Serialiser: 1.0
> ("Foo")[123,456]
> panic: attempt to copy freed scalar c37a18 to c37a00 at - line 14.
>
> $ perl -MJSON::XS -wE 'say JSON::XS->new->allow_tags->encode( bless {}, Foo
> ); package Foo; sub FREEZE{ return 123 }'
> Use of uninitialized value in say at -e line 1.
> ("Foo")[123]
>
> $ perl -MJSON::XS -wE 'say scalar( JSON::XS->new->allow_tags->encode( bless
> {}, Foo )); package Foo; sub FREEZE{ return 123 }'
> ("Foo")[123]
>
> Проверили на разных машинах и на разных версиях perl-а - одно и то же.
>
> --
>   С уважением,
>   Вадим Власов
>   т.: +7 (916) 424-00-72
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>


Подробная информация о списке рассылки Moscow-pm