From 1c7d5f303513af975bbc4343de4f774d3bcd3aee Mon Sep 17 00:00:00 2001 From: Michihiro NAKAJIMA Date: Sun, 2 Dec 2012 21:08:39 +0900 Subject: [PATCH] Fix memory leaks in pax writer when handing mac metadata. --- libarchive/archive_write_set_format_pax.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libarchive/archive_write_set_format_pax.c b/libarchive/archive_write_set_format_pax.c index 754e5f96f..687f8e48a 100644 --- a/libarchive/archive_write_set_format_pax.c +++ b/libarchive/archive_write_set_format_pax.c @@ -647,8 +647,10 @@ archive_write_pax_header(struct archive_write *a, oname = archive_entry_pathname(entry_original); name_length = strlen(oname); name = malloc(name_length + 3); - if (name == NULL) { + if (name == NULL || extra == NULL) { /* XXX error message */ + archive_entry_free(extra); + free(name); return (ARCHIVE_FAILED); } strcpy(name, oname); @@ -687,6 +689,7 @@ archive_write_pax_header(struct archive_write *a, /* Recurse to write the special copyfile entry. */ r = archive_write_pax_header(a, extra); + archive_entry_free(extra); if (r < ARCHIVE_WARN) return (r); if (r < ret) -- 2.47.2