X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fcompare.c;h=e93ccb0a2ccd49c23f88d4bcb6ce29e8344ca06d;hb=cdb27293;hp=ba120be1a25278cd5c65c576c11a17845e7cd7ce;hpb=2bda83b48d8a6807632312403561b11b79048443;p=chaz%2Ftar diff --git a/src/compare.c b/src/compare.c index ba120be..e93ccb0 100644 --- a/src/compare.c +++ b/src/compare.c @@ -19,7 +19,7 @@ with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#include "system.h" +#include #if HAVE_UTIME_H # include @@ -38,7 +38,7 @@ struct utimbuf #include #include "common.h" -#include "rmt.h" +#include #include /* Nonzero if we are verifying at the moment. */ @@ -54,9 +54,8 @@ static char *diff_buffer; void diff_init (void) { - diff_buffer = valloc (record_size); - if (!diff_buffer) - xalloc_die (); + void *ptr; + diff_buffer = page_aligned_alloc (&ptr, record_size); } /* Sigh about something that differs by writing a MESSAGE to stdlis, @@ -495,6 +494,14 @@ diff_archive (void) void verify_volume (void) { + if (removed_prefixes_p ()) + { + WARN((0, 0, + _("Archive contains file names with leading prefixes removed."))); + WARN((0, 0, + _("Verification may fail to locate original files."))); + } + if (!diff_buffer) diff_init (); @@ -556,6 +563,7 @@ verify_volume (void) do { counter++; + set_next_block_after (current_header); status = read_header (false); } while (status == HEADER_FAILURE); @@ -569,6 +577,8 @@ verify_volume (void) break; diff_archive (); + tar_stat_destroy (¤t_stat_info); + xheader_destroy (&extended_header); } access_mode = ACCESS_WRITE;