Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/capsicum-test/capsicum-linux.h
39475 views
1
#ifndef __CAPSICUM_LINUX_H__
2
#define __CAPSICUM_LINUX_H__
3
4
#ifdef __linux__
5
/************************************************************
6
* Linux Capsicum Functionality.
7
************************************************************/
8
#include <errno.h>
9
#include <sys/procdesc.h>
10
#include <sys/capsicum.h>
11
12
#define HAVE_CAP_RIGHTS_LIMIT
13
#define HAVE_CAP_RIGHTS_GET
14
#define HAVE_CAP_FCNTLS_LIMIT
15
#define HAVE_CAP_IOCTLS_LIMIT
16
#define HAVE_PROC_FDINFO
17
#define HAVE_PDWAIT4
18
#define CAP_FROM_ACCEPT
19
// TODO(drysdale): uncomment if/when Linux propagates rights on sctp_peeloff.
20
// Linux does not generate a capability from sctp_peeloff(cap_fd,...).
21
// #define CAP_FROM_PEELOFF
22
// TODO(drysdale): uncomment if/when Linux allows intermediate .. path segments
23
// for openat()-like operations.
24
// #define HAVE_OPENAT_INTERMEDIATE_DOTDOT
25
26
// Failure to open file due to path traversal generates EPERM
27
#ifdef ENOTBENEATH
28
#define E_NO_TRAVERSE_CAPABILITY ENOTBENEATH
29
#define E_NO_TRAVERSE_O_BENEATH ENOTBENEATH
30
#else
31
#define E_NO_TRAVERSE_CAPABILITY EPERM
32
#define E_NO_TRAVERSE_O_BENEATH EPERM
33
#endif
34
35
// Too many links
36
#define E_TOO_MANY_LINKS ELOOP
37
38
#endif /* __linux__ */
39
40
#endif /*__CAPSICUM_LINUX_H__*/
41
42