From: Paul Eggert Date: Wed, 18 Aug 1999 09:24:42 +0000 (+0000) Subject: (from_chars): Skip only the initial null byte from buggy tars, so that X-Git-Url: https://git.dogcows.com/gitweb?a=commitdiff_plain;h=22ee808ffee0bd9b5f70649166863620059131d8;p=chaz%2Ftar (from_chars): Skip only the initial null byte from buggy tars, so that we don't complain about all-null fields. --- diff --git a/src/list.c b/src/list.c index 2109d8f..43c858c 100644 --- a/src/list.c +++ b/src/list.c @@ -512,19 +512,22 @@ from_chars (char const *where0, size_t digs, char const *type, char const *lim = where + digs; int negative = 0; - /* Accommodate older tars, which output leading spaces, and at least one - buggy tar, which outputs leading NUL if the previous field overflows. */ + /* Accommodate buggy tar of unknown vintage, which outputs leading + NUL if the previous field overflows. */ + where += !*where; + + /* Accommodate older tars, which output leading spaces. */ for (;;) { if (where == lim) { if (type) ERROR ((0, 0, - _("Empty header where numeric %s value expected"), + _("Blanks in header where numeric %s value expected"), type)); return -1; } - if (!ISSPACE ((unsigned char) *where) && *where) + if (!ISSPACE ((unsigned char) *where)) break; where++; }