diff options
author | trasz <trasz@FreeBSD.org> | 2010-05-23 08:12:36 +0000 |
---|---|---|
committer | trasz <trasz@FreeBSD.org> | 2010-05-23 08:12:36 +0000 |
commit | 2040787fbf16a85e2981be38ab2dadfbec05426f (patch) | |
tree | e9148eb5305b7cc22afac318150abae97be6ac61 /lib | |
parent | 618c7e8625fd65c7ed1740e0895014d7f43f259e (diff) | |
download | FreeBSD-src-2040787fbf16a85e2981be38ab2dadfbec05426f.zip FreeBSD-src-2040787fbf16a85e2981be38ab2dadfbec05426f.tar.gz |
Make acl_get_perm_np(3) work with NFSv4 ACLs.
Reviewed by: kientzle@
MFC after: 1 week
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libc/posix1e/acl_get.c | 24 | ||||
-rw-r--r-- | lib/libc/posix1e/acl_perm.c | 18 |
2 files changed, 18 insertions, 24 deletions
diff --git a/lib/libc/posix1e/acl_get.c b/lib/libc/posix1e/acl_get.c index 8a77ab1..b323501 100644 --- a/lib/libc/posix1e/acl_get.c +++ b/lib/libc/posix1e/acl_get.c @@ -132,30 +132,6 @@ acl_get_fd_np(int fd, acl_type_t type) return (aclp); } -int -acl_get_perm_np(acl_permset_t permset_d, acl_perm_t perm) -{ - - if (permset_d == NULL) { - errno = EINVAL; - return (-1); - } - - switch(perm) { - case ACL_READ: - case ACL_WRITE: - case ACL_EXECUTE: - if (*permset_d & perm) - return (1); - break; - default: - errno = EINVAL; - return (-1); - } - - return (0); -} - /* * acl_get_permset() (23.4.17): return via permset_p a descriptor to * the permission set in the ACL entry entry_d. diff --git a/lib/libc/posix1e/acl_perm.c b/lib/libc/posix1e/acl_perm.c index b5108ca..ad2f47e 100644 --- a/lib/libc/posix1e/acl_perm.c +++ b/lib/libc/posix1e/acl_perm.c @@ -108,3 +108,21 @@ acl_delete_perm(acl_permset_t permset_d, acl_perm_t perm) return (0); } + +int +acl_get_perm_np(acl_permset_t permset_d, acl_perm_t perm) +{ + + if (permset_d == NULL) { + errno = EINVAL; + return (-1); + } + + if (_perm_is_invalid(perm)) + return (-1); + + if (*permset_d & perm) + return (1); + + return (0); +} |