X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fcompare.c;h=66205cb7e34fb63416179da0937fd755b3249e85;hb=6901594ac45b88e68a19dd7221511ddf9ff44f66;hp=d0cf5f7d6c04963bc96928ab0c975b32d87b7af3;hpb=d769b724f437711d08f00682a0af3a63937ad407;p=chaz%2Ftar diff --git a/src/compare.c b/src/compare.c index d0cf5f7..66205cb 100644 --- a/src/compare.c +++ b/src/compare.c @@ -366,7 +366,7 @@ dumpdir_cmp (const char *a, const char *b) static void diff_dumpdir (void) { - char *dumpdir_buffer; + const char *dumpdir_buffer; dev_t dev = 0; struct stat stat_data; @@ -597,9 +597,23 @@ verify_volume (void) "VERIFY FAILURE: %d invalid headers detected", counter), counter)); } - if (status == HEADER_ZERO_BLOCK || status == HEADER_END_OF_FILE) + if (status == HEADER_END_OF_FILE) break; + if (status == HEADER_ZERO_BLOCK) + { + set_next_block_after (current_header); + if (!ignore_zeros_option) + { + char buf[UINTMAX_STRSIZE_BOUND]; + status = read_header (false); + if (status == HEADER_ZERO_BLOCK) + break; + WARN ((0, 0, _("A lone zero block at %s"), + STRINGIFY_BIGINT (current_block_ordinal (), buf))); + } + } + diff_archive (); tar_stat_destroy (¤t_stat_info); }