cap_copy_ext, cap_copy_int - copy capability from system to user space or
from user to system space
ssize_t cap_copy_ext(void *bufp, cap_t cap, ssize_t size);
cap_t cap_copy_int(void *bufp);
cap_copy_ext copies the capability from *cap to *bufp, if the arguments
are valid. cap_copy_int allocates a cap_t and copies the cap_t pointed to
by *bufp into it, if the arguments are valid. The storage should be
freed by calling cap_free(3c) when no longer needed.
In the POSIX specifications, the internal form of an capability may be
different from the external form, hence the need for these functions. In
IRIX, both forms are the same.
cap_copy_ext returns sizeof(cap_t) in the normal case, or -1 if cap is
cap_copy_int returns an allocated cap_t in the normal case or (cap_t)0 if
the arguments are invalid.
EINVAL cap is null or bufp is null or size is 0 or negative.
ERANGE size is less than sizeof(cap_t)
EINVAL bufp is null
ENOMEM memory allocation failure
PPPPaaaaggggeeee 1111 [ Back ]