X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2Flist.c;h=b8a1b177dd2ea909bfed346cb49b56ed7779b935;hb=2690759c06119771895831d4c3cf8d9a52ccc5de;hp=cb14c79bb8ee01240844e0931185e916f9d4903d;hpb=defde325338f14d5a25d113141e8e03d19a7fbe8;p=chaz%2Ftar diff --git a/src/list.c b/src/list.c index cb14c79..b8a1b17 100644 --- a/src/list.c +++ b/src/list.c @@ -130,10 +130,19 @@ read_and (void (*do_something) (void)) } 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))); + } status = prev_status; - if (ignore_zeros_option) - continue; - break; + continue; case HEADER_END_OF_FILE: if (block_number_option) @@ -1096,7 +1105,8 @@ print_header (struct tar_stat_info *st, off_t block_ordinal) uintbuf)); break; default: - strcpy (size, STRINGIFY_BIGINT (st->stat.st_size, uintbuf)); + /* st->stat.st_size keeps stored file size */ + strcpy (size, STRINGIFY_BIGINT (st->archive_file_size, uintbuf)); break; }