summaryrefslogtreecommitdiff
path: root/sandbox-systrace.c
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox-systrace.c')
-rw-r--r--sandbox-systrace.c36
1 files changed, 21 insertions, 15 deletions
diff --git a/sandbox-systrace.c b/sandbox-systrace.c
index 3830ed16c..b4d8d04ca 100644
--- a/sandbox-systrace.c
+++ b/sandbox-systrace.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: sandbox-systrace.c,v 1.17 2015/07/27 16:29:23 guenther Exp $ */ 1/* $OpenBSD: sandbox-systrace.c,v 1.18 2015/10/02 01:39:26 deraadt Exp $ */
2/* 2/*
3 * Copyright (c) 2011 Damien Miller <djm@mindrot.org> 3 * Copyright (c) 2011 Damien Miller <djm@mindrot.org>
4 * 4 *
@@ -50,9 +50,17 @@ struct sandbox_policy {
50 50
51/* Permitted syscalls in preauth. Unlisted syscalls get SYSTR_POLICY_KILL */ 51/* Permitted syscalls in preauth. Unlisted syscalls get SYSTR_POLICY_KILL */
52static const struct sandbox_policy preauth_policy[] = { 52static const struct sandbox_policy preauth_policy[] = {
53 { SYS_clock_gettime, SYSTR_POLICY_PERMIT },
54 { SYS_close, SYSTR_POLICY_PERMIT },
55 { SYS_exit, SYSTR_POLICY_PERMIT }, 53 { SYS_exit, SYSTR_POLICY_PERMIT },
54#ifdef SYS_kbind
55 { SYS_kbind, SYSTR_POLICY_PERMIT },
56#endif
57
58 { SYS_getpid, SYSTR_POLICY_PERMIT },
59 { SYS_getpgid, SYSTR_POLICY_PERMIT },
60 { SYS_clock_gettime, SYSTR_POLICY_PERMIT },
61 { SYS_gettimeofday, SYSTR_POLICY_PERMIT },
62 { SYS_sigprocmask, SYSTR_POLICY_PERMIT },
63
56#ifdef SYS_getentropy 64#ifdef SYS_getentropy
57 /* OpenBSD 5.6 and newer use getentropy(2) to seed arc4random(3). */ 65 /* OpenBSD 5.6 and newer use getentropy(2) to seed arc4random(3). */
58 { SYS_getentropy, SYSTR_POLICY_PERMIT }, 66 { SYS_getentropy, SYSTR_POLICY_PERMIT },
@@ -60,27 +68,25 @@ static const struct sandbox_policy preauth_policy[] = {
60 /* Previous releases used sysctl(3)'s kern.arnd variable. */ 68 /* Previous releases used sysctl(3)'s kern.arnd variable. */
61 { SYS___sysctl, SYSTR_POLICY_PERMIT }, 69 { SYS___sysctl, SYSTR_POLICY_PERMIT },
62#endif 70#endif
63 { SYS_getpid, SYSTR_POLICY_PERMIT }, 71#ifdef SYS_sendsyslog
64 { SYS_getpgid, SYSTR_POLICY_PERMIT }, 72 { SYS_sendsyslog, SYSTR_POLICY_PERMIT },
65 { SYS_gettimeofday, SYSTR_POLICY_PERMIT },
66#ifdef SYS_kbind
67 { SYS_kbind, SYSTR_POLICY_PERMIT },
68#endif 73#endif
74
69 { SYS_madvise, SYSTR_POLICY_PERMIT }, 75 { SYS_madvise, SYSTR_POLICY_PERMIT },
70 { SYS_mmap, SYSTR_POLICY_PERMIT }, 76 { SYS_mmap, SYSTR_POLICY_PERMIT },
71 { SYS_mprotect, SYSTR_POLICY_PERMIT }, 77 { SYS_mprotect, SYSTR_POLICY_PERMIT },
72 { SYS_mquery, SYSTR_POLICY_PERMIT }, 78 { SYS_mquery, SYSTR_POLICY_PERMIT },
73 { SYS_munmap, SYSTR_POLICY_PERMIT }, 79 { SYS_munmap, SYSTR_POLICY_PERMIT },
74 { SYS_open, SYSTR_POLICY_NEVER }, 80
75 { SYS_poll, SYSTR_POLICY_PERMIT }, 81 { SYS_poll, SYSTR_POLICY_PERMIT },
76 { SYS_read, SYSTR_POLICY_PERMIT },
77 { SYS_select, SYSTR_POLICY_PERMIT }, 82 { SYS_select, SYSTR_POLICY_PERMIT },
78#ifdef SYS_sendsyslog 83 { SYS_read, SYSTR_POLICY_PERMIT },
79 { SYS_sendsyslog, SYSTR_POLICY_PERMIT },
80#endif
81 { SYS_shutdown, SYSTR_POLICY_PERMIT },
82 { SYS_sigprocmask, SYSTR_POLICY_PERMIT },
83 { SYS_write, SYSTR_POLICY_PERMIT }, 84 { SYS_write, SYSTR_POLICY_PERMIT },
85 { SYS_shutdown, SYSTR_POLICY_PERMIT },
86 { SYS_close, SYSTR_POLICY_PERMIT },
87
88 { SYS_open, SYSTR_POLICY_NEVER },
89
84 { -1, -1 } 90 { -1, -1 }
85}; 91};
86 92