X-Git-Url: https://git.saurik.com/apple/libc.git/blobdiff_plain/3d9156a7a519a5e3aa1b92e9d9d4b991f1aed7ff..2acb89982f71719aec26ca16705bd2c0400a9550:/posix1e/acl_entry.c diff --git a/posix1e/acl_entry.c b/posix1e/acl_entry.c index 37cd58b..a690c00 100644 --- a/posix1e/acl_entry.c +++ b/posix1e/acl_entry.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004 Apple Computer, Inc. All rights reserved. + * Copyright (c) 2004, 2011 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * @@ -30,6 +30,13 @@ #include "aclvar.h" +#if __DARWIN_ACL_EXTENDED_ALLOW != KAUTH_ACE_PERMIT +# error __DARWIN_ACL_EXTENDED_ALLOW != KAUTH_ACE_PERMIT +#endif +#if __DARWIN_ACL_EXTENDED_DENY != KAUTH_ACE_DENY +# error __DARWIN_ACL_EXTENDED_DENY != KAUTH_ACE_DENY +#endif + int acl_copy_entry(acl_entry_t dest, acl_entry_t src) { @@ -69,6 +76,7 @@ acl_create_entry_np(acl_t *acl_p, acl_entry_t *entry_p, int index) ap->a_entries++; /* initialise new entry */ + memset(&ap->a_ace[index], 0, sizeof(ap->a_ace[index])); ap->a_ace[index].ae_magic = _ACL_ENTRY_MAGIC; ap->a_ace[index].ae_tag = ACL_UNDEFINED_TAG; @@ -176,22 +184,21 @@ int acl_set_qualifier(acl_entry_t entry, const void *tag_qualifier_p) { acl_tag_t tag_type; - int error; _ACL_VALIDATE_ENTRY(entry); - if ((error = acl_get_tag_type(entry, &tag_type)) != 0) - return(error); + if (acl_get_tag_type(entry, &tag_type) != 0) + return(-1); switch(tag_type) { case ACL_EXTENDED_ALLOW: case ACL_EXTENDED_DENY: bcopy(tag_qualifier_p, &entry->ae_applicable, sizeof(guid_t)); - error = 0; break; default: - error = EINVAL; + errno = EINVAL; + return(-1); } - return(error); + return(0); } int @@ -205,7 +212,8 @@ acl_set_tag_type(acl_entry_t entry, acl_tag_t tag_type) entry->ae_tag = tag_type; break; default: - return(EINVAL); + errno = EINVAL; + return(-1); } return(0); }