[Moscow.pm] Баг в JSON::XS?
Вадим Власов
scripter.vrn на gmail.com
Ср Ноя 26 09:01:33 PST 2014
Исследуя новый сериализатор в 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
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20141126/17ce30f8/attachment.html>
Подробная информация о списке рассылки Moscow-pm