diff options
-rw-r--r-- | tar/write.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/tar/write.c b/tar/write.c index e15cc06c..c6e9fccc 100644 --- a/tar/write.c +++ b/tar/write.c @@ -540,8 +540,7 @@ write_archive(struct archive *a, struct bsdtar *bsdtar) lafe_warnc(archive_errno(disk), "%s", archive_error_string(disk)); bsdtar->return_value = 1; - archive_entry_free(entry); - continue; + goto next_entry; } /* @@ -559,13 +558,13 @@ write_archive(struct archive *a, struct bsdtar *bsdtar) bsdtar->return_value = 1; else archive_read_close(disk); - archive_entry_free(entry); - continue; + goto next_entry; } write_file(bsdtar, a, entry); - archive_entry_free(entry); archive_read_close(disk); +next_entry: + archive_entry_free(entry); entry = NULL; archive_entry_linkify(bsdtar->resolver, &entry, &sparse_entry); } |