X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2Fcreate.c;h=5bc51ae6f1f6a1171771b99a2f6ee7acadb4861a;hb=f5116dd1dbd4b1c510005934be3563102eb7b3be;hp=81066b4dcfac4805e4147a8fafcac814ddc283e4;hpb=14b158325624a6e42e8bf4f7169c7a55f0afb6f9;p=chaz%2Ftar diff --git a/src/create.c b/src/create.c index 81066b4..5bc51ae 100644 --- a/src/create.c +++ b/src/create.c @@ -298,7 +298,7 @@ clear_buffer (char *buffer) } /*-------------------------------------------------------------------------. -| Write the EOT block(s). We actually zero at least one block, through | +| Write the EOT block(s). We zero at least two blocks, through | | the end of the record. Old tar, as previous versions of GNU tar, writes | | garbage after two zeroed blocks. | `-------------------------------------------------------------------------*/ @@ -307,14 +307,11 @@ void write_eot (void) { union block *pointer = find_next_block (); - - if (pointer) - { - size_t space = available_space_after (pointer); - - memset (pointer->buffer, 0, space); - set_next_block_after (pointer); - } + memset (pointer->buffer, 0, BLOCKSIZE); + set_next_block_after (pointer); + pointer = find_next_block (); + memset (pointer->buffer, 0, available_space_after (pointer)); + set_next_block_after (pointer); } /*-----------------------------------------------------.