aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/tar
diff options
context:
space:
mode:
authorTim Kientzle <kientzle@FreeBSD.org>2007-04-07 05:56:40 +0000
committerTim Kientzle <kientzle@FreeBSD.org>2007-04-07 05:56:40 +0000
commitc2c19b10c7cbaeecb40cdd23fd5a95d7c6e213c1 (patch)
tree82d061219137e30a1bede02dea1c446fd5b38ce5 /usr.bin/tar
parent94451fa8a022b9dc3ae3929949ffa9ca840ed9a5 (diff)
downloadsrc-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.c12
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.