1/*- 2 * Copyright (c) 1999, 2000, 2001, 2002 Robert N. M. Watson 3 * All rights reserved. 4 * 5 * This software was developed by Robert Watson for the TrustedBSD Project. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions --- 16 unchanged lines hidden (view full) --- 25 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26 * SUCH DAMAGE. 27 */ 28/* 29 * acl_valid -- POSIX.1e ACL check routine 30 */ 31 32#include <sys/cdefs.h> |
33__FBSDID("$FreeBSD: head/lib/libc/posix1e/acl_valid.c 208785 2010-06-03 14:29:17Z trasz $"); |
34 35#include <sys/types.h> 36#include "namespace.h" 37#include <sys/acl.h> 38#include "un-namespace.h" 39#include <sys/errno.h> 40#include <stdlib.h> 41 --- 32 unchanged lines hidden (view full) --- 74 } else { 75 return (0); 76 } 77} 78 79int 80acl_valid_file_np(const char *pathp, acl_type_t type, acl_t acl) 81{ |
82 83 if (pathp == NULL || acl == NULL) { 84 errno = EINVAL; 85 return (-1); 86 } 87 type = _acl_type_unold(type); |
88 if (_posix1e_acl(acl, type)) 89 _posix1e_acl_sort(acl); |
90 91 return (__acl_aclcheck_file(pathp, type, &acl->ats_acl)); 92} 93 94int 95acl_valid_link_np(const char *pathp, acl_type_t type, acl_t acl) 96{ |
97 98 if (pathp == NULL || acl == NULL) { 99 errno = EINVAL; 100 return (-1); 101 } 102 type = _acl_type_unold(type); |
103 if (_posix1e_acl(acl, type)) 104 _posix1e_acl_sort(acl); |
105 106 return (__acl_aclcheck_link(pathp, type, &acl->ats_acl)); 107} 108 109int 110acl_valid_fd_np(int fd, acl_type_t type, acl_t acl) 111{ |
112 113 if (acl == NULL) { 114 errno = EINVAL; 115 return (-1); 116 } 117 type = _acl_type_unold(type); |
118 if (_posix1e_acl(acl, type)) 119 _posix1e_acl_sort(acl); |
120 121 acl->ats_cur_entry = 0; 122 123 return (___acl_aclcheck_fd(fd, type, &acl->ats_acl)); 124} |