# HG changeset patch # User adrian # Date 1055683546 0 # Node ID d4c017f833e2bf6cb85fa7f12f6395d5722411be # Parent 16bd99a7ef3c1273fc045e3fe9608111ef356167 [xemacs-hg @ 2003-06-15 13:25:46 by adrian] [A21.5R21.4] [PATCH] xemacs-21.5: minitar.c to handle 0 size files -------------------- ChangeLog entries follow: -------------------- nt/ChangeLog addition: 2003-06-15 Adrian Aichner * minitar.c (main): Handle 0 size files correctly. diff -r 16bd99a7ef3c -r d4c017f833e2 nt/ChangeLog --- a/nt/ChangeLog Sat Jun 14 21:52:18 2003 +0000 +++ b/nt/ChangeLog Sun Jun 15 13:25:46 2003 +0000 @@ -1,3 +1,7 @@ +2003-06-15 Adrian Aichner + + * minitar.c (main): Handle 0 size files correctly. + 2003-06-01 Steve Youngs * XEmacs 21.5.14 "cassava" is released. diff -r 16bd99a7ef3c -r d4c017f833e2 nt/minitar.c --- a/nt/minitar.c Sat Jun 14 21:52:18 2003 +0000 +++ b/nt/minitar.c Sun Jun 15 13:25:46 2003 +0000 @@ -139,6 +139,7 @@ { fprintf (stderr, "Error: incorrect magic number in tar header. Exiting\n"); + exit (-2); } strncpy (name, block, 100); @@ -158,6 +159,7 @@ break; default: fprintf (stderr, "Error: unknown type flag %c. Exiting.\n", type); + exit (-2); break; } @@ -218,6 +220,8 @@ fprintf (stderr, "Error: invalid size in tar header. Exiting.\n"); exit (-2); } + if (size==0) /* file of size 0 is done */ + in_block = 0; } } else { /* write or continue writing file contents */ nbytes = size>512? 512:size; @@ -227,6 +231,7 @@ { fprintf (stderr, "Error: only wrote %d bytes to file %s. Exiting.\n", nwritten, fullname); + exit (-2); } size -= nbytes; if (size==0)