summaryrefslogtreecommitdiff
path: root/sandbox-systrace.c
diff options
context:
space:
mode:
authorderaadt@openbsd.org <deraadt@openbsd.org>2015-10-02 01:39:26 +0000
committerDamien Miller <djm@mindrot.org>2015-10-06 12:24:54 +1100
commitc61b42f2678f21f05653ac2d3d241b48ab5d59ac (patch)
tree845ed0742f496c9727a29127d37ec023a842c89c /sandbox-systrace.c
parentc5f7c0843cb6e6074a93c8ac34e49ce33a6f5546 (diff)
downloadopenssh-git-c61b42f2678f21f05653ac2d3d241b48ab5d59ac.tar.gz
upstream commit
re-order system calls in order of risk, ok i'll be honest, ordered this way they look like tame... ok djm Upstream-ID: 42a1e6d251fd8be13c8262bee026059ae6328813
Diffstat (limited to 'sandbox-systrace.c')
-rw-r--r--sandbox-systrace.c44
1 files changed, 21 insertions, 23 deletions
diff --git a/sandbox-systrace.c b/sandbox-systrace.c
index 3830ed16..8ebdb73d 100644
--- a/sandbox-systrace.c
+++ b/sandbox-systrace.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sandbox-systrace.c,v 1.17 2015/07/27 16:29:23 guenther Exp $ */
+/* $OpenBSD: sandbox-systrace.c,v 1.18 2015/10/02 01:39:26 deraadt Exp $ */
/*
* Copyright (c) 2011 Damien Miller <djm@mindrot.org>
*
@@ -15,10 +15,6 @@
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-#include "includes.h"
-
-#ifdef SANDBOX_SYSTRACE
-
#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/syscall.h>
@@ -50,9 +46,17 @@ struct sandbox_policy {
/* Permitted syscalls in preauth. Unlisted syscalls get SYSTR_POLICY_KILL */
static const struct sandbox_policy preauth_policy[] = {
- { SYS_clock_gettime, SYSTR_POLICY_PERMIT },
- { SYS_close, SYSTR_POLICY_PERMIT },
{ SYS_exit, SYSTR_POLICY_PERMIT },
+#ifdef SYS_kbind
+ { SYS_kbind, SYSTR_POLICY_PERMIT },
+#endif
+
+ { SYS_getpid, SYSTR_POLICY_PERMIT },
+ { SYS_getpgid, SYSTR_POLICY_PERMIT },
+ { SYS_clock_gettime, SYSTR_POLICY_PERMIT },
+ { SYS_gettimeofday, SYSTR_POLICY_PERMIT },
+ { SYS_sigprocmask, SYSTR_POLICY_PERMIT },
+
#ifdef SYS_getentropy
/* OpenBSD 5.6 and newer use getentropy(2) to seed arc4random(3). */
{ SYS_getentropy, SYSTR_POLICY_PERMIT },
@@ -60,27 +64,23 @@ static const struct sandbox_policy preauth_policy[] = {
/* Previous releases used sysctl(3)'s kern.arnd variable. */
{ SYS___sysctl, SYSTR_POLICY_PERMIT },
#endif
- { SYS_getpid, SYSTR_POLICY_PERMIT },
- { SYS_getpgid, SYSTR_POLICY_PERMIT },
- { SYS_gettimeofday, SYSTR_POLICY_PERMIT },
-#ifdef SYS_kbind
- { SYS_kbind, SYSTR_POLICY_PERMIT },
-#endif
+ { SYS_sendsyslog, SYSTR_POLICY_PERMIT },
+
{ SYS_madvise, SYSTR_POLICY_PERMIT },
{ SYS_mmap, SYSTR_POLICY_PERMIT },
{ SYS_mprotect, SYSTR_POLICY_PERMIT },
{ SYS_mquery, SYSTR_POLICY_PERMIT },
{ SYS_munmap, SYSTR_POLICY_PERMIT },
- { SYS_open, SYSTR_POLICY_NEVER },
+
{ SYS_poll, SYSTR_POLICY_PERMIT },
- { SYS_read, SYSTR_POLICY_PERMIT },
{ SYS_select, SYSTR_POLICY_PERMIT },
-#ifdef SYS_sendsyslog
- { SYS_sendsyslog, SYSTR_POLICY_PERMIT },
-#endif
- { SYS_shutdown, SYSTR_POLICY_PERMIT },
- { SYS_sigprocmask, SYSTR_POLICY_PERMIT },
+ { SYS_read, SYSTR_POLICY_PERMIT },
{ SYS_write, SYSTR_POLICY_PERMIT },
+ { SYS_shutdown, SYSTR_POLICY_PERMIT },
+ { SYS_close, SYSTR_POLICY_PERMIT },
+
+ { SYS_open, SYSTR_POLICY_NEVER },
+
{ -1, -1 }
};
@@ -91,7 +91,7 @@ struct ssh_sandbox {
};
struct ssh_sandbox *
-ssh_sandbox_init(struct monitor *monitor)
+ssh_sandbox_init(void)
{
struct ssh_sandbox *box;
@@ -208,5 +208,3 @@ ssh_sandbox_parent_preauth(struct ssh_sandbox *box, pid_t child_pid)
{
ssh_sandbox_parent(box, child_pid, preauth_policy);
}
-
-#endif /* SANDBOX_SYSTRACE */