summaryrefslogtreecommitdiff
path: root/tar/write.c
diff options
context:
space:
mode:
authorTim Kientzle <kientzle@gmail.com>2011-12-23 22:57:42 -0500
committerTim Kientzle <kientzle@gmail.com>2011-12-23 22:57:42 -0500
commitce1dd93f99f9ec9549d6fb8f21a0bd839becaa00 (patch)
tree2bb09327a5b2daa57e1759d1dc6494049c6f6168 /tar/write.c
parentf14f226b0986a304dc5bfe2dc22aacb5843b4cbf (diff)
downloadlibarchive-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.c7
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;
}