Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
CAPSICUM_HELPERS(3)	     Library Functions Manual	     CAPSICUM_HELPERS(3)

NAME
     caph_limit_stream,  caph_limit_stdin, caph_limit_stderr, caph_limit_stdout,
     caph_limit_stdio,		caph_stream_rights,	      caph_cache_tzdata,
     caph_cache_catpages,   caph_enter,   caph_enter_casper,  caph_rights_limit,
     caph_ioctls_limit, caph_fcntls_limit -- set of the capsicum  helpers,  part
     of the libcapsicum

LIBRARY
     libcapsicum

SYNOPSIS
     #include <capsicum_helpers.h>

     int
     caph_enter(void);

     int
     caph_enter_casper(void);

     int
     caph_rights_limit(int fd, const cap_rights_t *rights);

     int
     caph_ioctls_limit(int fd, const unsigned long *cmds, size_t ncmds);

     int
     caph_fcntls_limit(int fd, uint32_t fcntlrights);

     int
     caph_limit_stream(int fd, int flags);

     int
     caph_limit_stdin(void);

     int
     caph_limit_stderr(void);

     int
     caph_limit_stdout(void);

     int
     caph_limit_stdio(void);

     void
     caph_stream_rights(cap_rights_t *, int flags);

     void
     caph_cache_tzdata(void);

     void
     caph_cache_catpages(void);

DESCRIPTION
     The  caph_enter, caph_rights_limit, caph_ioctls_limit and caph_fcntls_limit
     are   respectively   equivalent   to   cap_enter(2),   cap_rights_limit(2),
     cap_ioctls_limit(2)  and  cap_fcntls_limit(2),  it returns success when the
     kernel is built without support of the capability mode.

     The caph_enter_casper is equivalent to the caph_enter  it	returns  success
     when the system is built without Casper support.

     The capsicum helpers are a set of a inline functions which simplify modify-
     ing  programs  to use Capsicum.  The goal is to reduce duplicated code pat-
     terns.  The capsicum helpers are part of libcapsicum but there is	no  need
     to link to the library.

     caph_limit_stream()  restricts  capabilities  on fd to only those needed by
     POSIX stream objects (that is, FILEs).

     These flags can be provided:

	   CAPH_IGNORE_EBADF  Do not return an error if file descriptor  is  in-
			      valid.
	   CAPH_READ	      Set CAP_READ on limited descriptor.
	   CAPH_WRITE	      Set CAP_WRITE on limited descriptor.

     caph_limit_stdin(), caph_limit_stderr() and caph_limit_stdout() limit stan-
     dard descriptors using the caph_limit_stream function.

     caph_limit_stdio() limits stdin, stderr and stdout.

     caph_stream_rights  may  be  used to initialize rights with the same rights
     that a stream would be limited to, as if caph_limit_stream() had  been  in-
     voked using the same flags.

     caph_cache_tzdata()  precaches  all  timezone data needed to use libc local
     time functions.

     caph_cache_catpages() caches Native Language Support (NLS) data.  NLS  data
     is  used for localized error printing by strerror(3) and err(3), among oth-
     ers.

RETURN VALUES
     Upon    successful    completion,	  caph_enter(),     caph_enter_casper(),
     caph_rights_limit(),	 caph_ioctls_limit(),	    caph_fcntls_limit(),
     caph_limit_stream(),	 caph_limit_stdin(),	    caph_limit_stderr(),
     caph_limit_stdout(),  and	caph_limit_stdio()  return a value of 0.  Other-
     wise, a value of -1 is returned and the global variable errno is set to in-
     dicate the error.

     Functions caph_stream_rights(),  caph_cache_tzdata(),  and  caph_cache_cat-
     pages() can not fail.

SEE ALSO
     cap_enter(2), cap_rights_limit(2), rights(4)

FreeBSD 15.1			  May 16, 2024		     CAPSICUM_HELPERS(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=capsicum_helpers&sektion=3&manpath=FreeBSD+15.1-RELEASE+and+Ports.quarterly>

home | help