From: Tobias Stoeckmann Date: Mon, 20 Apr 2026 17:06:11 +0000 (+0200) Subject: tar: Release memory on error path X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=330bda678e8fd173baa5a8d9906f7fcbd33b16e4;p=thirdparty%2Flibarchive.git tar: Release memory on error path Release attr_name memory on error paths. Fixes: 101646e34e88 ("tar: Keep block alignment after pax error") Fixes: 36a530973a91 ("Fix an infinite loop when parsing `V` headers") --- diff --git a/libarchive/archive_read_support_format_tar.c b/libarchive/archive_read_support_format_tar.c index 297949276..98800ec31 100644 --- a/libarchive/archive_read_support_format_tar.c +++ b/libarchive/archive_read_support_format_tar.c @@ -2009,6 +2009,7 @@ header_pax_extension(struct archive_read *a, struct tar *tar, /* Consume size, name, and `=` */ *unconsumed += p - attr_start; if (tar_flush_unconsumed(a, unconsumed) != ARCHIVE_OK) { + archive_string_free(&attr_name); return (ARCHIVE_FATAL); } @@ -2016,6 +2017,7 @@ header_pax_extension(struct archive_read *a, struct tar *tar, archive_set_error(&a->archive, EINVAL, "Malformed pax attributes"); *unconsumed += ext_size + ext_padding; + archive_string_free(&attr_name); return (ARCHIVE_WARN); }