summaryrefslogtreecommitdiffstats
path: root/contrib/libarchive/tar/write.c
diff options
context:
space:
mode:
authormm <mm@FreeBSD.org>2016-10-12 10:28:22 +0000
committermm <mm@FreeBSD.org>2016-10-12 10:28:22 +0000
commit7f8f8a43cae54b88ca06ba3674a79204ee698a54 (patch)
tree863e52c86db80e8b9c5e1f3ae1f70921a4c739d8 /contrib/libarchive/tar/write.c
parent7c05d1bcc3ae1e7fdf6581cd249a5b0de28fd5c2 (diff)
downloadFreeBSD-src-7f8f8a43cae54b88ca06ba3674a79204ee698a54.zip
FreeBSD-src-7f8f8a43cae54b88ca06ba3674a79204ee698a54.tar.gz
MFC r306670:
Sync libarchive with vendor including security fixes. Important vendor bugfixes (relevant to FreeBSD): #747: Out of bounds read in mtree parser #761: heap-based buffer overflow in read_Header (7-zip) #794: Invalid file on bsdtar command line results in internal errors (1) PR: 213092 (1)
Diffstat (limited to 'contrib/libarchive/tar/write.c')
-rw-r--r--contrib/libarchive/tar/write.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/contrib/libarchive/tar/write.c b/contrib/libarchive/tar/write.c
index 30fb224..18193de 100644
--- a/contrib/libarchive/tar/write.c
+++ b/contrib/libarchive/tar/write.c
@@ -886,6 +886,8 @@ write_hierarchy(struct bsdtar *bsdtar, struct archive *a, const char *path)
"%s", archive_error_string(disk));
if (r == ARCHIVE_FATAL || r == ARCHIVE_FAILED) {
bsdtar->return_value = 1;
+ archive_entry_free(entry);
+ archive_read_close(disk);
return;
} else if (r < ARCHIVE_WARN)
continue;
OpenPOWER on IntegriCloud