From: Michihiro NAKAJIMA Date: Sun, 2 Dec 2012 12:08:39 +0000 (+0900) Subject: Fix memory leaks in pax writer when handing mac metadata. X-Git-Tag: v3.1.0~31 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1c7d5f303513af975bbc4343de4f774d3bcd3aee;p=thirdparty%2Flibarchive.git Fix memory leaks in pax writer when handing mac metadata. --- 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)