diff options
Diffstat (limited to 'lib/Spreadsheet')
-rw-r--r-- | lib/Spreadsheet/ParseXLSX.pm | 3 | ||||
-rw-r--r-- | lib/Spreadsheet/ParseXLSX/Decryptor.pm | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/lib/Spreadsheet/ParseXLSX.pm b/lib/Spreadsheet/ParseXLSX.pm index a9b501f..cf9319a 100644 --- a/lib/Spreadsheet/ParseXLSX.pm +++ b/lib/Spreadsheet/ParseXLSX.pm @@ -71,10 +71,11 @@ sub parse { my $workbook = Spreadsheet::ParseExcel::Workbook->new; if ($self->_check_signature($file)) { - $file = Spreadsheet::ParseXLSX::Decryptor->open( + my $decrypted_file = Spreadsheet::ParseXLSX::Decryptor->open( $file, $self->{Password} ); + $file = $decrypted_file if $decrypted_file; } if (openhandle($file)) { diff --git a/lib/Spreadsheet/ParseXLSX/Decryptor.pm b/lib/Spreadsheet/ParseXLSX/Decryptor.pm index 660a544..7870685 100644 --- a/lib/Spreadsheet/ParseXLSX/Decryptor.pm +++ b/lib/Spreadsheet/ParseXLSX/Decryptor.pm @@ -25,6 +25,8 @@ sub open { ['EncryptionInfo', 'EncryptedPackage'] ); + return unless $infoFH; + my $buffer; $infoFH->read($buffer, 8); my ($majorVers, $minorVers) = unpack('SS', $buffer); |