diff options
author | mm <mm@FreeBSD.org> | 2016-10-12 10:28:22 +0000 |
---|---|---|
committer | mm <mm@FreeBSD.org> | 2016-10-12 10:28:22 +0000 |
commit | 7f8f8a43cae54b88ca06ba3674a79204ee698a54 (patch) | |
tree | 863e52c86db80e8b9c5e1f3ae1f70921a4c739d8 /contrib/libarchive/tar/write.c | |
parent | 7c05d1bcc3ae1e7fdf6581cd249a5b0de28fd5c2 (diff) | |
download | FreeBSD-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.c | 2 |
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; |