acl_set.c (8f45e8c07611579a6a623ef2201082816c2f39ae) acl_set.c (2de14c39b5bb20fc70ea555ac36fbe165857ac91)
1/*-
1/*-
2 * Copyright (c) 1999 Robert N. M. Watson
2 * Copyright (c) 1999, 2000, 2001 Robert N. M. Watson
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright

--- 7 unchanged lines hidden (view full) ---

18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 *
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright

--- 7 unchanged lines hidden (view full) ---

18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 *
26 * $FreeBSD$
26 * $FreeBSD$
27 */
28/*
29 * acl_set_file -- set a file/directory ACL by name
30 */
31
32#include <sys/types.h>
33#include <sys/acl.h>
34#include <errno.h>

--- 6 unchanged lines hidden (view full) ---

41 * not a semantic that the library knows about, just submit it flat and
42 * assume the caller knows what they're up to.
43 */
44int
45acl_set_file(const char *path_p, acl_type_t type, acl_t acl)
46{
47 int error;
48
27 */
28/*
29 * acl_set_file -- set a file/directory ACL by name
30 */
31
32#include <sys/types.h>
33#include <sys/acl.h>
34#include <errno.h>

--- 6 unchanged lines hidden (view full) ---

41 * not a semantic that the library knows about, just submit it flat and
42 * assume the caller knows what they're up to.
43 */
44int
45acl_set_file(const char *path_p, acl_type_t type, acl_t acl)
46{
47 int error;
48
49 if (acl_posix1e(acl, type)) {
50 error = acl_sort(acl);
49 if (_posix1e_acl(acl, type)) {
50 error = _posix1e_acl_sort(acl);
51 if (error) {
52 errno = error;
53 return (-1);
54 }
55 }
56
57 return (__acl_set_file(path_p, type, acl));
58}
59
60int
61acl_set_fd(int fd, acl_t acl)
62{
63 int error;
64
51 if (error) {
52 errno = error;
53 return (-1);
54 }
55 }
56
57 return (__acl_set_file(path_p, type, acl));
58}
59
60int
61acl_set_fd(int fd, acl_t acl)
62{
63 int error;
64
65 error = acl_sort(acl);
65 error = _posix1e_acl_sort(acl);
66 if (error) {
67 errno = error;
68 return(-1);
69 }
70
71 return (__acl_set_fd(fd, ACL_TYPE_ACCESS, acl));
72}
73
74int
75acl_set_fd_np(int fd, acl_t acl, acl_type_t type)
76{
77 int error;
78
66 if (error) {
67 errno = error;
68 return(-1);
69 }
70
71 return (__acl_set_fd(fd, ACL_TYPE_ACCESS, acl));
72}
73
74int
75acl_set_fd_np(int fd, acl_t acl, acl_type_t type)
76{
77 int error;
78
79 if (acl_posix1e(acl, type)) {
80 error = acl_sort(acl);
79 if (_posix1e_acl(acl, type)) {
80 error = _posix1e_acl_sort(acl);
81 if (error) {
82 errno = error;
83 return (-1);
84 }
85 }
86
87 return (__acl_set_fd(fd, type, acl));
88}
81 if (error) {
82 errno = error;
83 return (-1);
84 }
85 }
86
87 return (__acl_set_fd(fd, type, acl));
88}