diff options
author | Tim Kientzle <kientzle@gmail.com> | 2011-12-23 22:57:42 -0500 |
---|---|---|
committer | Tim Kientzle <kientzle@gmail.com> | 2011-12-23 22:57:42 -0500 |
commit | ce1dd93f99f9ec9549d6fb8f21a0bd839becaa00 (patch) | |
tree | 2bb09327a5b2daa57e1759d1dc6494049c6f6168 /tar/write.c | |
parent | f14f226b0986a304dc5bfe2dc22aacb5843b4cbf (diff) | |
download | libarchive-ce1dd93f99f9ec9549d6fb8f21a0bd839becaa00.tar.gz |
Various fixes merged from the FreeBSD tree.
(Thanks to Martin Matuska for inventorying these for me.)
SVN-Revision: 3979
Diffstat (limited to 'tar/write.c')
-rw-r--r-- | tar/write.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/tar/write.c b/tar/write.c index 711c3e71..8c102d0e 100644 --- a/tar/write.c +++ b/tar/write.c @@ -968,6 +968,7 @@ write_entry(struct bsdtar *bsdtar, struct archive *a, fd = open(pathname, O_RDONLY | O_BINARY); align = 4096; if (fd == -1) { + bsdtar->return_value = 1; if (!bsdtar->verbose) lafe_warnc(errno, "%s: could not open file", pathname); @@ -1076,6 +1077,12 @@ write_file_data(struct bsdtar *bsdtar, struct archive *a, progress += bytes_written; bytes_read = read(fd, buff, buff_size); } + if (bytes_read < 0) { + lafe_warnc(errno, + "%s: Read error", + archive_entry_pathname(entry)); + bsdtar->return_value = 1; + } return 0; } |