Skip to content

Commit

Permalink
tar: fix memory leaks when processing symlinks or parsing pax headers
Browse files Browse the repository at this point in the history
Fix memory leaks introduced by libarchive#2127:

* `struct tar` member `entry_linkpath` was moved at the same time as
   other members were removed, but its cleanup was accidentally removed
   with the others.

* `header_pax_extension` local variable `attr_name` was not cleaned up.

Resolves libarchive#2336
  • Loading branch information
bradking committed Sep 19, 2024
1 parent 12ecf84 commit 1b35461
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions libarchive/archive_read_support_format_tar.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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;

/*
Expand Down

0 comments on commit 1b35461

Please sign in to comment.