From: Martin Matuska Date: Wed, 8 Mar 2017 00:02:20 +0000 (+0100) Subject: Darwin ACL: avoid unnecessary use of getpwuuid() and getgruuid() X-Git-Tag: v3.3.2~57 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1a1be097da6c042a83fff26bdce361101bb869c8;p=thirdparty%2Flibarchive.git Darwin ACL: avoid unnecessary use of getpwuuid() and getgruuid() --- diff --git a/libarchive/archive_read_disk_entry_from_file.c b/libarchive/archive_read_disk_entry_from_file.c index 9dec2e908..1c94afddb 100644 --- a/libarchive/archive_read_disk_entry_from_file.c +++ b/libarchive/archive_read_disk_entry_from_file.c @@ -40,8 +40,6 @@ __FBSDID("$FreeBSD: head/lib/libarchive/archive_read_disk_entry_from_file.c 2010 #endif #ifdef HAVE_DARWIN_ACL #include -#include -#include #endif #ifdef HAVE_SYS_EXTATTR_H #include @@ -856,8 +854,6 @@ static int translate_guid(struct archive *a, acl_entry_t acl_entry, void *q; uid_t ugid; int r, idtype; - struct passwd *pwd; - struct group *grp; q = acl_get_qualifier(acl_entry); if (q == NULL) @@ -869,24 +865,12 @@ static int translate_guid(struct archive *a, acl_entry_t acl_entry, } if (idtype == ID_TYPE_UID) { *ae_tag = ARCHIVE_ENTRY_ACL_USER; - pwd = getpwuuid(q); - if (pwd == NULL) { - *ae_id = ugid; - *ae_name = NULL; - } else { - *ae_id = pwd->pw_uid; - *ae_name = archive_read_disk_uname(a, *ae_id); - } + *ae_id = ugid; + *ae_name = archive_read_disk_uname(a, *ae_id); } else if (idtype == ID_TYPE_GID) { *ae_tag = ARCHIVE_ENTRY_ACL_GROUP; - grp = getgruuid(q); - if (grp == NULL) { - *ae_id = ugid; - *ae_name = NULL; - } else { - *ae_id = grp->gr_gid; - *ae_name = archive_read_disk_gname(a, *ae_id); - } + *ae_id = ugid; + *ae_name = archive_read_disk_gname(a, *ae_id); } else r = 1;