cap_fcntls_limit
,
cap_fcntls_get
— manage
allowed fcntl commands
Standard C Library (libc, -lc)
#include
<sys/capsicum.h>
int
cap_fcntls_limit
(int
fd, uint32_t
fcntlrights);
int
cap_fcntls_get
(int
fd, uint32_t
*fcntlrightsp);
If a file descriptor is granted the
CAP_FCNTL
capability right, the list of allowed
fcntl(2)
commands can be selectively reduced (but never expanded) with the
cap_fcntls_limit
()
system call.
A bitmask of allowed fcntls commands for a
given file descriptor can be obtained with the
cap_fcntls_get
()
system call.
Upon successful completion, the value 0 is returned;
otherwise the value -1 is returned and the global variable
errno is set to indicate the error.
cap_fcntls_limit
() succeeds unless:
- [
EBADF
]
- The fd argument is not a valid descriptor.
- [
EINVAL
]
- An invalid flag has been passed in fcntlrights.
- [
ENOTCAPABLE
]
- fcntlrights would expand the list of allowed
fcntl(2)
commands.
cap_fcntls_get
() succeeds unless:
- [
EBADF
]
- The fd argument is not a valid descriptor.
- [
EFAULT
]
- The fcntlrightsp argument points at an invalid
address.
- [
ENOSYS
]
- The running kernel was compiled without
options
CAPABILITY_MODE
.
The cap_fcntls_get
() and
cap_fcntls_limit
() system calls first appeared in
FreeBSD 8.3. Support for capabilities and
capabilities mode was developed as part of the TrustedBSD Project.
This function was created by Pawel Jakub
Dawidek
<pawel@dawidek.net>
under sponsorship of the FreeBSD Foundation.