Skip Menu |

This queue is for tickets about the Archive-Zip CPAN distribution.

Report information
The Basics
Id: 96572
Status: new
Priority: 0/
Queue: Archive-Zip

People
Owner: Nobody in particular
Requestors: johannes.ernst [...] gmail.com
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: Missing return statement in /usr/share/perl5/vendor_perl/Archive/Zip/Member.pm::extractToFileNamed
Date: Thu, 19 Jun 2014 17:17:04 -0700
To: bug-Archive-Zip [...] rt.cpan.org
From: Johannes Ernst <johannes.ernst [...] gmail.com>
From http://svn.ali.as/cpan/trunk/Archive-Zip/lib/Archive/Zip/Member.pm: Note single *** marked line that is missing. As a result, some of my archives stop unpacking after they have encountered a random symlink. sub extractToFileNamed { my $self = shift; # local FS name my $name = ( ref( $_[0] ) eq 'HASH' ) ? $_[0]->{name} : $_[0]; $self->{'isSymbolicLink'} = 0; # Check if the file / directory is a symbolic link or not if ( $self->{'externalFileAttributes'} == 0xA1FF0000 ) { $self->{'isSymbolicLink'} = 1; $self->{'newName'} = $name; my ( $status, $fh ) = _newFileHandle( $name, 'r' ); my $retval = $self->extractToFileHandle($fh); $fh->close(); *** return $retval; *** } else { #return _writeSymbolicLink($self, $name) if $self->isSymbolicLink(); my ( $status, $fh ); if ( $^O eq 'MSWin32' && $Archive::Zip::UNICODE ) { $name = decode_utf8( Win32::GetFullPathName($name) ); mkpath_win32($name); if ( $self->{'compressedSize'} == 0 ) { return; } else { Win32::CreateFile($name); } ( $status, $fh ) = _newFileHandle( Win32::GetANSIPathName($name), 'w' ); } else { mkpath( dirname($name) ); # croaks on error ( $status, $fh ) = _newFileHandle( $name, 'w' ); } return _ioError("Can't open file $name for write") unless $status; my $retval = $self->extractToFileHandle($fh); $fh->close(); chmod ($self->unixFileAttributes(), $name) or return _error("Can't chmod() ${name}: $!"); utime( $self->lastModTime(), $self->lastModTime(), $name ); return $retval; } }