From: Martin Matuska Date: Thu, 23 Feb 2017 14:18:25 +0000 (+0100) Subject: Mac OS: write ACLs to disk when ARCHIVE_EXTRACT_MAC_METADATA is not set X-Git-Tag: v3.3.1~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8530618fa0a3836843388061ddfa65cf1f1efa0d;p=thirdparty%2Flibarchive.git Mac OS: write ACLs to disk when ARCHIVE_EXTRACT_MAC_METADATA is not set --- diff --git a/libarchive/archive_write_disk_posix.c b/libarchive/archive_write_disk_posix.c index 3dfdb546d..5a01e8450 100644 --- a/libarchive/archive_write_disk_posix.c +++ b/libarchive/archive_write_disk_posix.c @@ -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,