]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Mac OS: write ACLs to disk when ARCHIVE_EXTRACT_MAC_METADATA is not set
authorMartin Matuska <martin@matuska.org>
Thu, 23 Feb 2017 14:18:25 +0000 (15:18 +0100)
committerMartin Matuska <martin@matuska.org>
Fri, 24 Feb 2017 01:16:05 +0000 (02:16 +0100)
libarchive/archive_write_disk_posix.c

index 3dfdb546d574e9ebc4ce21a433640fdcf399914f..5a01e8450ceff67e16677a96d11b7a9a7ce6ab85 100644 (file)
@@ -1712,7 +1712,8 @@ _archive_write_disk_finish_entry(struct archive *_a)
                const void *metadata;
                size_t metadata_size;
                metadata = archive_entry_mac_metadata(a->entry, &metadata_size);
-               if (metadata == NULL || metadata_size == 0) {
+               if ((a->todo & TODO_MAC_METADATA) == 0 ||
+                   metadata == NULL || metadata_size == 0) {
 #endif
                r2 = archive_write_disk_set_acls(&a->archive, a->fd,
                    archive_entry_pathname(a->entry),
@@ -2293,7 +2294,8 @@ _archive_write_disk_close(struct archive *_a)
                        chmod(p->name, p->mode);
                if (p->fixup & TODO_ACLS)
 #ifdef HAVE_DARWIN_ACL
-                       if (p->mac_metadata == NULL ||
+                       if ((p->fixup & TODO_MAC_METADATA) == 0 ||
+                           p->mac_metadata == NULL ||
                            p->mac_metadata_size == 0)
 #endif
                                archive_write_disk_set_acls(&a->archive,