]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Improve the sample code in archive_write.3
authorTim Kientzle <kientzle@gmail.com>
Sun, 9 May 2010 00:35:34 +0000 (20:35 -0400)
committerTim Kientzle <kientzle@gmail.com>
Sun, 9 May 2010 00:35:34 +0000 (20:35 -0400)
SVN-Revision: 2374

libarchive/archive_write.3

index f57197ea38e4c1401179c78a693a08c384d207e5..4e0141b16cc87f3974fbad0b3396289affc1b785 100644 (file)
@@ -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++;