diff options
author | Tim Kientzle <kientzle@FreeBSD.org> | 2007-04-07 05:56:40 +0000 |
---|---|---|
committer | Tim Kientzle <kientzle@FreeBSD.org> | 2007-04-07 05:56:40 +0000 |
commit | c2c19b10c7cbaeecb40cdd23fd5a95d7c6e213c1 (patch) | |
tree | 82d061219137e30a1bede02dea1c446fd5b38ce5 /usr.bin/tar | |
parent | 94451fa8a022b9dc3ae3929949ffa9ca840ed9a5 (diff) | |
download | src-c2c19b10c7cbaeecb40cdd23fd5a95d7c6e213c1.tar.gz src-c2c19b10c7cbaeecb40cdd23fd5a95d7c6e213c1.zip |
Simplify the logic for handling header read
errors.
Notes
Notes:
svn path=/head/; revision=168454
Diffstat (limited to 'usr.bin/tar')
-rw-r--r-- | usr.bin/tar/read.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/usr.bin/tar/read.c b/usr.bin/tar/read.c index 1fec9ead5aa3..92e0d8e31b97 100644 --- a/usr.bin/tar/read.c +++ b/usr.bin/tar/read.c @@ -122,19 +122,17 @@ read_archive(struct bsdtar *bsdtar, char mode) r = archive_read_next_header(a, &entry); if (r == ARCHIVE_EOF) break; - if (r == ARCHIVE_WARN) + if (r < ARCHIVE_OK) bsdtar_warnc(bsdtar, 0, "%s", archive_error_string(a)); - if (r == ARCHIVE_FATAL) { - bsdtar->return_value = 1; - bsdtar_warnc(bsdtar, 0, "%s", archive_error_string(a)); - break; - } if (r == ARCHIVE_RETRY) { /* Retryable error: try again */ - bsdtar_warnc(bsdtar, 0, "%s", archive_error_string(a)); bsdtar_warnc(bsdtar, 0, "Retrying..."); continue; } + if (r != ARCHIVE_OK) { + bsdtar->return_value = 1; + break; + } /* * Exclude entries that are too old. |