diff -ruNp tar-1.22.orig/src/list.c tar-1.22/src/list.c --- tar-1.22.orig/src/list.c 2008-10-30 12:10:04.000000000 +0100 +++ tar-1.22/src/list.c 2009-03-06 00:03:05.925105425 +0100 @@ -138,6 +138,14 @@ read_and (void (*do_something) (void)) if (!ignore_zeros_option) { + /* + * According to POSIX tar specs, this is wrong, but on the web + * there are some tar specs that can trigger this, and some tar + * implementations create tars according to that spec. For now, + * let's not be pedantic about issuing the warning. + */ +#if 0 + char buf[UINTMAX_STRSIZE_BOUND]; status = read_header (¤t_header, ¤t_stat_info, @@ -147,6 +155,9 @@ read_and (void (*do_something) (void)) WARNOPT (WARN_ALONE_ZERO_BLOCK, (0, 0, _("A lone zero block at %s"), STRINGIFY_BIGINT (current_block_ordinal (), buf))); +#endif + status = read_header (¤t_header, ¤t_stat_info, + read_header_auto); break; } status = prev_status;