diff options
author | kientzle <kientzle@FreeBSD.org> | 2005-08-10 15:02:53 +0000 |
---|---|---|
committer | kientzle <kientzle@FreeBSD.org> | 2005-08-10 15:02:53 +0000 |
commit | fcb7f09afa00151c86541bef3c214f25a101d786 (patch) | |
tree | d9475e8d467bc8e5ff3e9ad9f948adb2fe355e57 /lib | |
parent | ae8fd24a2e511668f08a1eb498c80a0ba87f6b41 (diff) | |
download | FreeBSD-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.c | 5 |
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; |