2651
|
1 |
A less complete version of this patch was fed back to the upstream community:
|
|
2 |
http://code.google.com/p/libarchive/issues/detail?id=285
|
|
3 |
This more complete patch was committed instead. It should no longer be
|
|
4 |
needed with the next release.
|
|
5 |
|
|
6 |
--- libarchive/libarchive/archive_write_set_format_pax.c.orig Mon Mar 26 19:49:00 2012
|
|
7 |
+++ libarchive/libarchive/archive_write_set_format_pax.c Sun Dec 2 04:03:38 2012
|
|
8 |
@@ -647,8 +647,10 @@ archive_write_pax_header(struct archive_write *a,
|
|
9 |
oname = archive_entry_pathname(entry_original);
|
|
10 |
name_length = strlen(oname);
|
|
11 |
name = malloc(name_length + 3);
|
|
12 |
- if (name == NULL) {
|
|
13 |
+ if (name == NULL || extra == NULL) {
|
|
14 |
/* XXX error message */
|
|
15 |
+ archive_entry_free(extra);
|
|
16 |
+ free(name);
|
|
17 |
return (ARCHIVE_FAILED);
|
|
18 |
}
|
|
19 |
strcpy(name, oname);
|
|
20 |
@@ -687,6 +689,7 @@ archive_write_pax_header(struct archive_write *a,
|
|
21 |
|
|
22 |
/* Recurse to write the special copyfile entry. */
|
|
23 |
r = archive_write_pax_header(a, extra);
|
|
24 |
+ archive_entry_free(extra);
|
|
25 |
if (r < ARCHIVE_WARN)
|
|
26 |
return (r);
|
|
27 |
if (r < ret)
|