components/libarchive/patches/archive_write_set_format_pax.c.patch
author William.D.Johnston <William.D.Johnston@oracle.com>
Sun, 12 Jul 2015 15:01:25 -0700
changeset 4634 a4940ac4947c
parent 1316 22b5cf35a3ea
permissions -rw-r--r--
20886490 proftpd can't open wtmpx after one login failure, doesn't register the ftp login 20717794 proftpd changes group ownership of file /etc/shadow after user login failure 19318572 root logins can't get all privilege when Solaris PrivilegeEngine enabled
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1316
22b5cf35a3ea PSARC 2012/356 libarchive
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
     1
A less complete version of this patch was fed back to the upstream community:
22b5cf35a3ea PSARC 2012/356 libarchive
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
     2
http://code.google.com/p/libarchive/issues/detail?id=285
22b5cf35a3ea PSARC 2012/356 libarchive
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
     3
This more complete patch was committed instead.  It should no longer be
22b5cf35a3ea PSARC 2012/356 libarchive
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
     4
needed with the next release.
22b5cf35a3ea PSARC 2012/356 libarchive
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
     5
22b5cf35a3ea PSARC 2012/356 libarchive
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
     6
--- libarchive/libarchive/archive_write_set_format_pax.c.orig	Mon Mar 26 19:49:00 2012
22b5cf35a3ea PSARC 2012/356 libarchive
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
     7
+++ libarchive/libarchive/archive_write_set_format_pax.c	Sun Dec  2 04:03:38 2012
22b5cf35a3ea PSARC 2012/356 libarchive
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
     8
@@ -647,8 +647,10 @@ archive_write_pax_header(struct archive_write *a,
22b5cf35a3ea PSARC 2012/356 libarchive
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
     9
		oname = archive_entry_pathname(entry_original);
22b5cf35a3ea PSARC 2012/356 libarchive
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    10
		name_length = strlen(oname);
22b5cf35a3ea PSARC 2012/356 libarchive
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    11
		name = malloc(name_length + 3);
22b5cf35a3ea PSARC 2012/356 libarchive
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    12
-		if (name == NULL) {
22b5cf35a3ea PSARC 2012/356 libarchive
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    13
+		if (name == NULL || extra == NULL) {
22b5cf35a3ea PSARC 2012/356 libarchive
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    14
			/* XXX error message */
22b5cf35a3ea PSARC 2012/356 libarchive
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    15
+			archive_entry_free(extra);
22b5cf35a3ea PSARC 2012/356 libarchive
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    16
+			free(name);
22b5cf35a3ea PSARC 2012/356 libarchive
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    17
			return (ARCHIVE_FAILED);
22b5cf35a3ea PSARC 2012/356 libarchive
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    18
		}
22b5cf35a3ea PSARC 2012/356 libarchive
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    19
		strcpy(name, oname);
22b5cf35a3ea PSARC 2012/356 libarchive
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    20
@@ -687,6 +689,7 @@ archive_write_pax_header(struct archive_write *a,
22b5cf35a3ea PSARC 2012/356 libarchive
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    21
22b5cf35a3ea PSARC 2012/356 libarchive
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    22
		/* Recurse to write the special copyfile entry. */
22b5cf35a3ea PSARC 2012/356 libarchive
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    23
		r = archive_write_pax_header(a, extra);
22b5cf35a3ea PSARC 2012/356 libarchive
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    24
+		archive_entry_free(extra);
22b5cf35a3ea PSARC 2012/356 libarchive
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    25
		if (r < ARCHIVE_WARN)
22b5cf35a3ea PSARC 2012/356 libarchive
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    26
			return (r);
22b5cf35a3ea PSARC 2012/356 libarchive
John Beck <John.Beck@Oracle.COM>
parents:
diff changeset
    27
		if (r < ret)