Subject: | IO::Uncompress::RawInflate::mkUncomp doesn't check whether $got is an object before calling methods on it |
Catching error: 'Can\'t call method "value" on an undefined value at
/usr/local/lib/perl5/5.10.0/x86_64-linux/IO/Uncompress/RawInflate.pm line 64
Regardless of whether this actually happens the routine in question
should check whether $got is an object before calling object methods on it.
Here's a full backtrace anyway, probably due to mismatch in zlib
versions since the routine is passed two params but seems to expect three:
IO::Uncompress::RawInflate::mkUncomp(/usr/local/lib/perl5/5.10.0/x86_64-linux/IO/Uncompress/RawInflate.pm:60):
60: my $self = shift ;
DB<4> n
IO::Uncompress::RawInflate::mkUncomp(/usr/local/lib/perl5/5.10.0/x86_64-linux/IO/Uncompress/RawInflate.pm:61):
61: my $class = shift ;
DB<4> n
IO::Uncompress::RawInflate::mkUncomp(/usr/local/lib/perl5/5.10.0/x86_64-linux/IO/Uncompress/RawInflate.pm:62):
62: my $got = shift ;
DB<4> n
IO::Uncompress::RawInflate::mkUncomp(/usr/local/lib/perl5/5.10.0/x86_64-linux/IO/Uncompress/RawInflate.pm:64):
64: my ($obj, $errstr, $errno) =
IO::Uncompress::Adapter::Inflate::mkUncompObject(
65:
$got->value('CRC32'),
66:
$got->value('ADLER32'),
67:
$got->value('Scan'),
68: );
DB<4> x $got
0 undef
DB<5> T
$ = IO::Uncompress::RawInflate::mkUncomp(ref(IO::Uncompress::Gunzip),
ref(IO::Compress::Base::Parameters)) called from file
`/usr/local/lib/perl5/5.10.0/x86_64-linux/IO/Uncompress/Base.pm' line 471
$ = IO::Uncompress::Base::_create(ref(IO::Uncompress::Gunzip), undef, 0,
'/home/hinrik/.cpan/sources/authors/01mailrc.txt.gz', 'Transparent', 1,
'Append', 0, 'AutoClose', 1, 'MultiStream', 1, 'Strict', 0) called from
file `/usr/local/lib/perl5/5.10.0/x86_64-linux/IO/Uncompress/Gunzip.pm'
line 39
$ = IO::Uncompress::Gunzip::new('IO::Uncompress::Gunzip',
'/home/hinrik/.cpan/sources/authors/01mailrc.txt.gz', 'Transparent', 1,
'Append', 0, 'AutoClose', 1, 'MultiStream', 1, 'Strict', 0) called from
file `/usr/local/lib/perl5/5.10.0/x86_64-linux/Compress/Zlib.pm' line 142
$ =
Compress::Zlib::gzopen('/home/hinrik/.cpan/sources/authors/01mailrc.txt.gz',
'rb') called from file `/usr/local/lib/perl5/5.10.0/CPAN/Tarzip.pm' line 103
$ = CPAN::Tarzip::gtest(ref(CPAN::Tarzip)) called from file
`/usr/local/lib/perl5/5.10.0/CPAN/Tarzip.pm' line 132
$ = CPAN::Tarzip::TIEHANDLE('CPAN::Tarzip',
'/home/hinrik/.cpan/sources/authors/01mailrc.txt.gz') called from file
`/usr/local/lib/perl5/5.10.0/CPAN.pm' line 5047
. = CPAN::Index::rd_authindex('CPAN::Index',
'/home/hinrik/.cpan/sources/authors/01mailrc.txt.gz') called from file
`/usr/local/lib/perl5/5.10.0/CPAN.pm' line 4881
. = CPAN::Index::reload('CPAN::Index') called from file
`/usr/local/lib/perl5/5.10.0/CPAN.pm' line 1219
$ = CPAN::exists(ref(CPAN), 'CPAN::Module', 'CPAN') called from file
`/usr/local/lib/perl5/5.10.0/CPAN.pm' line 2855
$ = CPAN::Shell::expandany('CPAN::Shell', 'CPAN') called from file
`/usr/local/lib/perl5/5.10.0/CPAN.pm' line 3248
. = CPAN::Shell::rematein('CPAN::Shell', 'install', 'CPAN') called from
file `/usr/local/lib/perl5/5.10.0/CPAN.pm' line 3535
. =
CPAN::Shell::__ANON__[/usr/local/lib/perl5/5.10.0/CPAN.pm:3535]('CPAN::Shell',
'CPAN') called from file `/usr/local/lib/perl5/5.10.0/CPAN.pm' line 274
. = eval {...} called from file `/usr/local/lib/perl5/5.10.0/CPAN.pm'
line 274
. = CPAN::shell() called from -e line 1
DB<5>