| Index: experimental/webtry/seccomp_bpf.h
|
| diff --git a/experimental/webtry/seccomp_bpf.h b/experimental/webtry/seccomp_bpf.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..8bbe99b7f8835f35903dfe4e50b873f3a458ad10
|
| --- /dev/null
|
| +++ b/experimental/webtry/seccomp_bpf.h
|
| @@ -0,0 +1,45 @@
|
| +/*
|
| + * seccomp example for x86 (32-bit and 64-bit) with BPF macros
|
| + *
|
| + * Copyright (c) 2012 The Chromium OS Authors <chromium-os-dev@chromium.org>
|
| + * Authors:
|
| + * Will Drewry <wad@chromium.org>
|
| + * Kees Cook <keescook@chromium.org>
|
| + *
|
| + * Use of this source code is governed by a BSD-style license that can be
|
| + * found in the LICENSE file.
|
| + *
|
| + * A stripped down version of the file found in this tutorial: http://outflux.net/teach-seccomp/.
|
| + */
|
| +#ifndef _SECCOMP_BPF_H_
|
| +#define _SECCOMP_BPF_H_
|
| +
|
| +#define _GNU_SOURCE 1
|
| +#include <stdio.h>
|
| +#include <stddef.h>
|
| +#include <stdlib.h>
|
| +#include <errno.h>
|
| +#include <signal.h>
|
| +#include <string.h>
|
| +#include <unistd.h>
|
| +
|
| +#include <sys/prctl.h>
|
| +
|
| +#include <linux/unistd.h>
|
| +#include <linux/audit.h>
|
| +#include <linux/filter.h>
|
| +#include <linux/seccomp.h>
|
| +
|
| +#define syscall_nr (offsetof(struct seccomp_data, nr))
|
| +
|
| +#define EXAMINE_SYSCALL \
|
| + BPF_STMT(BPF_LD+BPF_W+BPF_ABS, syscall_nr)
|
| +
|
| +#define ALLOW_SYSCALL(name) \
|
| + BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, __NR_##name, 0, 1), \
|
| + BPF_STMT(BPF_RET+BPF_K, SECCOMP_RET_ALLOW)
|
| +
|
| +#define KILL_PROCESS \
|
| + BPF_STMT(BPF_RET+BPF_K, SECCOMP_RET_KILL)
|
| +
|
| +#endif /* _SECCOMP_BPF_H_ */
|
|
|