diff options
author | Jos I. Boumans <jos@dwim.org> | 2009-05-02 15:56:14 +0200 |
---|---|---|
committer | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2009-05-02 15:56:14 +0200 |
commit | 4feb3b720036eec7ba1546b2c13226e19c67319e (patch) | |
tree | ff81abc9c97063f902ab3908dee5bb79ac8e32bd /lib | |
parent | 615b7a35f0cbe45b40f04ee2c44ea5417830bc4d (diff) | |
download | perl-4feb3b720036eec7ba1546b2c13226e19c67319e.tar.gz |
Update Archive::Tar to 1.48
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Archive/Tar.pm | 9 | ||||
-rw-r--r-- | lib/Archive/Tar/t/04_resolved_issues.t | 24 | ||||
-rw-r--r-- | lib/Archive/Tar/t/src/header/signed.tar.packed | 2 | ||||
-rw-r--r-- | lib/Archive/Tar/t/src/linktest/linktest_missing_dir.tar.packed | 2 | ||||
-rw-r--r-- | lib/Archive/Tar/t/src/linktest/linktest_with_dir.tar.packed | 2 | ||||
-rw-r--r-- | lib/Archive/Tar/t/src/long/bar.tar.packed | 2 | ||||
-rw-r--r-- | lib/Archive/Tar/t/src/long/foo.tbz.packed | 2 | ||||
-rw-r--r-- | lib/Archive/Tar/t/src/long/foo.tgz.packed | 2 | ||||
-rw-r--r-- | lib/Archive/Tar/t/src/short/bar.tar.packed | 2 | ||||
-rw-r--r-- | lib/Archive/Tar/t/src/short/foo.tbz.packed | 2 | ||||
-rw-r--r-- | lib/Archive/Tar/t/src/short/foo.tgz.packed | 2 |
11 files changed, 41 insertions, 10 deletions
diff --git a/lib/Archive/Tar.pm b/lib/Archive/Tar.pm index 09dab10581..b504881ea0 100644 --- a/lib/Archive/Tar.pm +++ b/lib/Archive/Tar.pm @@ -31,7 +31,7 @@ use vars qw[$DEBUG $error $VERSION $WARN $FOLLOW_SYMLINK $CHOWN $CHMOD $DEBUG = 0; $WARN = 1; $FOLLOW_SYMLINK = 0; -$VERSION = "1.46"; +$VERSION = "1.48"; $CHOWN = 1; $CHMOD = 1; $DO_NOT_USE_PREFIX = 0; @@ -323,6 +323,13 @@ sub _read_tar { $self->_error( qq[Cannot read compressed format in tar-mode] ); return; } + + ### size is < HEAD, which means a corrupted file, as the minimum + ### length is _at least_ HEAD + if (length $chunk != HEAD) { + $self->_error( qq[Cannot read enough bytes from the tarfile] ); + return; + } } ### if we can't read in all bytes... ### diff --git a/lib/Archive/Tar/t/04_resolved_issues.t b/lib/Archive/Tar/t/04_resolved_issues.t index 89756cdeac..9bb3d33f03 100644 --- a/lib/Archive/Tar/t/04_resolved_issues.t +++ b/lib/Archive/Tar/t/04_resolved_issues.t @@ -167,3 +167,27 @@ use_ok( $FileClass ); ok( $file->validate, " File validates" ); } } + +### return error properly on corrupted archives +### Addresses RT #44680: Improve error reporting on short corrupted archives +{ ok( 1, "Testing bug 44680" ); + + { ### XXX whitebox test -- resetting the error string + no warnings 'once'; + $Archive::Tar::error = ""; + } + + my $src = File::Spec->catfile( qw[src short b] ); + my $tar = $Class->new; + + isa_ok( $tar, $Class, " Object" ); + + + ### we quell the error on STDERR + local $Archive::Tar::WARN = 0; + + ok( !$tar->read( $src ), " No files in the corrupted archive" ); + like( $tar->error, qr/enough bytes/, + " Expected error reported" ); +} + diff --git a/lib/Archive/Tar/t/src/header/signed.tar.packed b/lib/Archive/Tar/t/src/header/signed.tar.packed index e8d5bc8dfe..1fa99b3088 100644 --- a/lib/Archive/Tar/t/src/header/signed.tar.packed +++ b/lib/Archive/Tar/t/src/header/signed.tar.packed @@ -10,7 +10,7 @@ To recreate it use the following command: uupacktool.pl -p lib/Archive/Tar/t/src/header/signed.tar lib/Archive/Tar/t/src/header/signed.tar.packed -Created at Thu Mar 5 17:07:54 2009 +Created at Tue Apr 21 11:50:41 2009 ######################################################################### __UU__ MPZ3#I,.D```````````````````````````````````````````````````` diff --git a/lib/Archive/Tar/t/src/linktest/linktest_missing_dir.tar.packed b/lib/Archive/Tar/t/src/linktest/linktest_missing_dir.tar.packed index 2cd09870cb..897641e440 100644 --- a/lib/Archive/Tar/t/src/linktest/linktest_missing_dir.tar.packed +++ b/lib/Archive/Tar/t/src/linktest/linktest_missing_dir.tar.packed @@ -10,7 +10,7 @@ To recreate it use the following command: uupacktool.pl -p lib/Archive/Tar/t/src/linktest/linktest_missing_dir.tar lib/Archive/Tar/t/src/linktest/linktest_missing_dir.tar.packed -Created at Thu Mar 5 17:07:54 2009 +Created at Tue Apr 21 11:50:42 2009 ######################################################################### __UU__ M;&EN:W1E<W0O;&EN:P`````````````````````````````````````````` diff --git a/lib/Archive/Tar/t/src/linktest/linktest_with_dir.tar.packed b/lib/Archive/Tar/t/src/linktest/linktest_with_dir.tar.packed index 50ecaebdc6..a3dd09877a 100644 --- a/lib/Archive/Tar/t/src/linktest/linktest_with_dir.tar.packed +++ b/lib/Archive/Tar/t/src/linktest/linktest_with_dir.tar.packed @@ -10,7 +10,7 @@ To recreate it use the following command: uupacktool.pl -p lib/Archive/Tar/t/src/linktest/linktest_with_dir.tar lib/Archive/Tar/t/src/linktest/linktest_with_dir.tar.packed -Created at Thu Mar 5 17:07:54 2009 +Created at Tue Apr 21 11:50:42 2009 ######################################################################### __UU__ M;&EN:W1E<W0O;W)I9R\````````````````````````````````````````` diff --git a/lib/Archive/Tar/t/src/long/bar.tar.packed b/lib/Archive/Tar/t/src/long/bar.tar.packed index 1379fee20f..c06973e83d 100644 --- a/lib/Archive/Tar/t/src/long/bar.tar.packed +++ b/lib/Archive/Tar/t/src/long/bar.tar.packed @@ -10,7 +10,7 @@ To recreate it use the following command: uupacktool.pl -p lib/Archive/Tar/t/src/long/bar.tar lib/Archive/Tar/t/src/long/bar.tar.packed -Created at Thu Mar 5 17:07:54 2009 +Created at Tue Apr 21 11:50:42 2009 ######################################################################### __UU__ M8P`````````````````````````````````````````````````````````` diff --git a/lib/Archive/Tar/t/src/long/foo.tbz.packed b/lib/Archive/Tar/t/src/long/foo.tbz.packed index 705f5bf744..8ca9f69217 100644 --- a/lib/Archive/Tar/t/src/long/foo.tbz.packed +++ b/lib/Archive/Tar/t/src/long/foo.tbz.packed @@ -10,7 +10,7 @@ To recreate it use the following command: uupacktool.pl -p lib/Archive/Tar/t/src/long/foo.tbz lib/Archive/Tar/t/src/long/foo.tbz.packed -Created at Thu Mar 5 17:07:54 2009 +Created at Tue Apr 21 11:50:42 2009 ######################################################################### __UU__ M0EIH.3%!62936=873NT``9C_A._0`DA``_^`0`0)`._OGJ```40(,`%X9`8` diff --git a/lib/Archive/Tar/t/src/long/foo.tgz.packed b/lib/Archive/Tar/t/src/long/foo.tgz.packed index 6de253c6b2..e481ec5794 100644 --- a/lib/Archive/Tar/t/src/long/foo.tgz.packed +++ b/lib/Archive/Tar/t/src/long/foo.tgz.packed @@ -10,7 +10,7 @@ To recreate it use the following command: uupacktool.pl -p lib/Archive/Tar/t/src/long/foo.tgz lib/Archive/Tar/t/src/long/foo.tgz.packed -Created at Thu Mar 5 17:07:54 2009 +Created at Tue Apr 21 11:50:42 2009 ######################################################################### __UU__ M'XL(`````````^W72VZ#,!`&8*]S"BY`F,$/MCT`ET")25`<D"A1Q.UKR*M1 diff --git a/lib/Archive/Tar/t/src/short/bar.tar.packed b/lib/Archive/Tar/t/src/short/bar.tar.packed index 18399eb1db..f507bbb1f8 100644 --- a/lib/Archive/Tar/t/src/short/bar.tar.packed +++ b/lib/Archive/Tar/t/src/short/bar.tar.packed @@ -10,7 +10,7 @@ To recreate it use the following command: uupacktool.pl -p lib/Archive/Tar/t/src/short/bar.tar lib/Archive/Tar/t/src/short/bar.tar.packed -Created at Thu Mar 5 17:07:54 2009 +Created at Tue Apr 21 11:50:42 2009 ######################################################################### __UU__ M8P`````````````````````````````````````````````````````````` diff --git a/lib/Archive/Tar/t/src/short/foo.tbz.packed b/lib/Archive/Tar/t/src/short/foo.tbz.packed index ff0f7e4e56..7fcb8ec301 100644 --- a/lib/Archive/Tar/t/src/short/foo.tbz.packed +++ b/lib/Archive/Tar/t/src/short/foo.tbz.packed @@ -10,7 +10,7 @@ To recreate it use the following command: uupacktool.pl -p lib/Archive/Tar/t/src/short/foo.tbz lib/Archive/Tar/t/src/short/foo.tbz.packed -Created at Thu Mar 5 17:07:54 2009 +Created at Tue Apr 21 11:50:42 2009 ######################################################################### __UU__ M0EIH.3%!62936>GH,8X``)O[A.90`D!``'^```#O*1X```%`""``E(*JGDA# diff --git a/lib/Archive/Tar/t/src/short/foo.tgz.packed b/lib/Archive/Tar/t/src/short/foo.tgz.packed index 67af0ed06d..61827fe4ba 100644 --- a/lib/Archive/Tar/t/src/short/foo.tgz.packed +++ b/lib/Archive/Tar/t/src/short/foo.tgz.packed @@ -10,7 +10,7 @@ To recreate it use the following command: uupacktool.pl -p lib/Archive/Tar/t/src/short/foo.tgz lib/Archive/Tar/t/src/short/foo.tgz.packed -Created at Thu Mar 5 17:07:54 2009 +Created at Tue Apr 21 11:50:42 2009 ######################################################################### __UU__ M'XL(`````````^W300K",!"%X5GW%#G"3-JFYREJ080NJKU_A^A"$.RJ(\+_ |