From: Tim Kientzle Date: Sun, 9 May 2010 00:35:34 +0000 (-0400) Subject: Improve the sample code in archive_write.3 X-Git-Tag: v3.0.0a~1021 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ad27480f2c59567a0b9c0de4c2f570703197c380;p=thirdparty%2Flibarchive.git Improve the sample code in archive_write.3 SVN-Revision: 2374 --- diff --git a/libarchive/archive_write.3 b/libarchive/archive_write.3 index f57197ea3..4e0141b16 100644 --- a/libarchive/archive_write.3 +++ b/libarchive/archive_write.3 @@ -449,11 +449,13 @@ write_archive(const char *outname, const char **filename) archive_entry_copy_stat(entry, &st); archive_entry_set_pathname(entry, *filename); archive_write_header(a, entry); - fd = open(*filename, O_RDONLY); - len = read(fd, buff, sizeof(buff)); - while ( len > 0 ) { - archive_write_data(a, buff, len); - len = read(fd, buff, sizeof(buff)); + if ((fd = open(*filename, O_RDONLY)) != -1) { + len = read(fd, buff, sizeof(buff)); + while ( len > 0 ) { + archive_write_data(a, buff, len); + len = read(fd, buff, sizeof(buff)); + } + close(fd); } archive_entry_free(entry); filename++;