summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJos I. Boumans <jos@dwim.org>2009-05-02 15:56:14 +0200
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>2009-05-02 15:56:14 +0200
commit4feb3b720036eec7ba1546b2c13226e19c67319e (patch)
treeff81abc9c97063f902ab3908dee5bb79ac8e32bd /lib
parent615b7a35f0cbe45b40f04ee2c44ea5417830bc4d (diff)
downloadperl-4feb3b720036eec7ba1546b2c13226e19c67319e.tar.gz
Update Archive::Tar to 1.48
Diffstat (limited to 'lib')
-rw-r--r--lib/Archive/Tar.pm9
-rw-r--r--lib/Archive/Tar/t/04_resolved_issues.t24
-rw-r--r--lib/Archive/Tar/t/src/header/signed.tar.packed2
-rw-r--r--lib/Archive/Tar/t/src/linktest/linktest_missing_dir.tar.packed2
-rw-r--r--lib/Archive/Tar/t/src/linktest/linktest_with_dir.tar.packed2
-rw-r--r--lib/Archive/Tar/t/src/long/bar.tar.packed2
-rw-r--r--lib/Archive/Tar/t/src/long/foo.tbz.packed2
-rw-r--r--lib/Archive/Tar/t/src/long/foo.tgz.packed2
-rw-r--r--lib/Archive/Tar/t/src/short/bar.tar.packed2
-rw-r--r--lib/Archive/Tar/t/src/short/foo.tbz.packed2
-rw-r--r--lib/Archive/Tar/t/src/short/foo.tgz.packed2
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(\+_