summaryrefslogtreecommitdiffstats
path: root/sys/sys/capability.h
diff options
context:
space:
mode:
authorpjd <pjd@FreeBSD.org>2013-03-02 21:11:30 +0000
committerpjd <pjd@FreeBSD.org>2013-03-02 21:11:30 +0000
commit702516e70b2669b5076691a0b760b4a37a8c06a2 (patch)
tree5dbc48bdb7b78718e22183ef377b76f2e3bc74c2 /sys/sys/capability.h
parent5026b7b931be858ac65f951dc40069f970064606 (diff)
downloadFreeBSD-src-702516e70b2669b5076691a0b760b4a37a8c06a2.zip
FreeBSD-src-702516e70b2669b5076691a0b760b4a37a8c06a2.tar.gz
- Implement two new system calls:
int bindat(int fd, int s, const struct sockaddr *addr, socklen_t addrlen); int connectat(int fd, int s, const struct sockaddr *name, socklen_t namelen); which allow to bind and connect respectively to a UNIX domain socket with a path relative to the directory associated with the given file descriptor 'fd'. - Add manual pages for the new syscalls. - Make the new syscalls available for processes in capability mode sandbox. - Add capability rights CAP_BINDAT and CAP_CONNECTAT that has to be present on the directory descriptor for the syscalls to work. - Update audit(4) to support those two new syscalls and to handle path in sockaddr_un structure relative to the given directory descriptor. - Update procstat(1) to recognize the new capability rights. - Document the new capability rights in cap_rights_limit(2). Sponsored by: The FreeBSD Foundation Discussed with: rwatson, jilles, kib, des
Diffstat (limited to 'sys/sys/capability.h')
-rw-r--r--sys/sys/capability.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/sys/sys/capability.h b/sys/sys/capability.h
index 27e56c2..0d1ea5c 100644
--- a/sys/sys/capability.h
+++ b/sys/sys/capability.h
@@ -182,13 +182,18 @@
#define CAP_PDWAIT 0x0020000000000000ULL
#define CAP_PDKILL 0x0040000000000000ULL
+/*
+ * Rights that allow to use bindat(2) and connectat(2) syscalls on a
+ * directory descriptor.
+ */
+#define CAP_BINDAT 0x0400000000000000ULL
+#define CAP_CONNECTAT 0x0800000000000000ULL
+
/* The mask of all valid method rights. */
-#define CAP_MASK_VALID 0x03ffffffffffffffULL
+#define CAP_MASK_VALID 0x0fffffffffffffffULL
#define CAP_ALL CAP_MASK_VALID
/* Available bits. */
-#define CAP_UNUSED5 0x0400000000000000ULL
-#define CAP_UNUSED4 0x0800000000000000ULL
#define CAP_UNUSED3 0x1000000000000000ULL
#define CAP_UNUSED2 0x2000000000000000ULL
#define CAP_UNUSED1 0x4000000000000000ULL
OpenPOWER on IntegriCloud