From 24214ca5d506f56dc0cb2a2e1312256472039475 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Mon, 15 Nov 2010 00:07:53 -0800 Subject: [PATCH] tar: fix --verify option, which broke in 1.24 * NEWS: Document this. * src/compare.c (verify_volume): Decode the header before invoking diff_archive, as diff_archive no longer does this as of the 2010-06-28 commit. Also, don't try to invoke diff_archive on a zero block. * tests/Makefile.am (TESTSUITE_AT): Add verify.at. * tests/testsuite.at: Include verify.at. * tests/verify.at: New file. --- NEWS | 10 ++++++++-- src/compare.c | 2 ++ tests/Makefile.am | 1 + tests/testsuite.at | 2 ++ tests/verify.at | 37 +++++++++++++++++++++++++++++++++++++ 5 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 tests/verify.at diff --git a/NEWS b/NEWS index 8244bad..e8829a4 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,12 @@ -GNU tar NEWS - User visible changes. 2010-11-07 +GNU tar NEWS - User visible changes. 2010-11-14 Please send GNU tar bug reports to + +version 1.25.90 - (Git) + +* Bugfixes +** Fix the --verify option, which broke in version 1.24. + version 1.25 - Sergey Poznyakoff, 2010-11-07 @@ -27,7 +33,7 @@ are met, tar retries extraction using an alternative decompressor: 2. The compression program was not explicitly requested in the command line by the use of such options as -z, -j, etc. -For example, if `compress' is not available, tar will try `gzip'. +For example, if `compress' is not available, tar will try `gzip'. version 1.24 - Sergey Poznyakoff, 2010-10-24 diff --git a/src/compare.c b/src/compare.c index 6b7e6d8..f3112c6 100644 --- a/src/compare.c +++ b/src/compare.c @@ -611,8 +611,10 @@ verify_volume (void) (0, 0, _("A lone zero block at %s"), STRINGIFY_BIGINT (current_block_ordinal (), buf))); } + continue; } + decode_header (current_header, ¤t_stat_info, ¤t_format, 1); diff_archive (); tar_stat_destroy (¤t_stat_info); } diff --git a/tests/Makefile.am b/tests/Makefile.am index 12e8c1b..f289067 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -157,6 +157,7 @@ TESTSUITE_AT = \ volsize.at\ volume.at\ verbose.at\ + verify.at\ version.at\ xform-h.at\ xform01.at\ diff --git a/tests/testsuite.at b/tests/testsuite.at index d18b16e..db0db3a 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -232,6 +232,8 @@ m4_include([update.at]) m4_include([update01.at]) m4_include([update02.at]) +m4_include([verify.at]) + m4_include([volume.at]) m4_include([volsize.at]) diff --git a/tests/verify.at b/tests/verify.at new file mode 100644 index 0000000..98ba22b --- /dev/null +++ b/tests/verify.at @@ -0,0 +1,37 @@ +# Process this file with autom4te to create testsuite. -*- Autotest -*- + +# Test suite for GNU tar. +# Copyright (C) 2010 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +# Check that tar --verify works. +# Problem reported by Gilles Espinasse in +# . + +AT_SETUP([verify]) +AT_KEYWORDS([verify]) + +AT_TAR_CHECK([ +touch foo +tar -cvf archive.tar --verify foo +], +[0], +[foo +Verify foo +]) + +AT_CLEANUP -- 2.45.2