libarchive: tar: fix memory leaks when reading symlinks or parsing pax headers

Backport [libarchive PR 2338] to fix [libarchive issue 2336].

[libarchive PR 2338]: https://github.com/libarchive/libarchive/pull/2338
[libarchive issue 2336]: https://github.com/libarchive/libarchive/issues/2336
This commit is contained in:
Brad King
2024-09-18 17:04:21 -04:00
parent dad12c8010
commit 387a9a746a

View File

@@ -296,6 +296,7 @@ archive_read_format_tar_cleanup(struct archive_read *a)
archive_string_free(&tar->entry_pathname_override);
archive_string_free(&tar->entry_uname);
archive_string_free(&tar->entry_gname);
archive_string_free(&tar->entry_linkpath);
archive_string_free(&tar->line);
archive_string_free(&tar->pax_global);
archive_string_free(&tar->longname);
@@ -1935,6 +1936,7 @@ header_pax_extension(struct archive_read *a, struct tar *tar,
*unconsumed += 1;
tar_flush_unconsumed(a, unconsumed);
}
archive_string_free(&attr_name);
*unconsumed += ext_size + ext_padding;
/*