summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorkientzle <kientzle@FreeBSD.org>2005-08-10 15:02:53 +0000
committerkientzle <kientzle@FreeBSD.org>2005-08-10 15:02:53 +0000
commitfcb7f09afa00151c86541bef3c214f25a101d786 (patch)
treed9475e8d467bc8e5ff3e9ad9f948adb2fe355e57 /lib
parentae8fd24a2e511668f08a1eb498c80a0ba87f6b41 (diff)
downloadFreeBSD-src-fcb7f09afa00151c86541bef3c214f25a101d786.zip
FreeBSD-src-fcb7f09afa00151c86541bef3c214f25a101d786.tar.gz
Record an error message if there are write errors when extracting the
content of an archive entry to a file descriptor.
Diffstat (limited to 'lib')
-rw-r--r--lib/libarchive/archive_read_data_into_fd.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/libarchive/archive_read_data_into_fd.c b/lib/libarchive/archive_read_data_into_fd.c
index b01220d..7f2cb6d 100644
--- a/lib/libarchive/archive_read_data_into_fd.c
+++ b/lib/libarchive/archive_read_data_into_fd.c
@@ -28,6 +28,7 @@
__FBSDID("$FreeBSD$");
#include <sys/types.h>
+#include <errno.h>
#include <unistd.h>
#include "archive.h"
@@ -65,8 +66,10 @@ archive_read_data_into_fd(struct archive *a, int fd)
if (bytes_to_write > MAX_WRITE)
bytes_to_write = MAX_WRITE;
bytes_written = write(fd, buff, bytes_to_write);
- if (bytes_written < 0)
+ if (bytes_written < 0) {
+ archive_set_error(a, errno, "Write error");
return (-1);
+ }
output_offset += bytes_written;
total_written += bytes_written;
size -= bytes_written;
OpenPOWER on IntegriCloud