helper/seccomp: do not call F_println if not verbose
This (slightly) improves performance. Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
parent
163f15e93f
commit
7b96cd6ded
@ -28,7 +28,7 @@ struct f_syscall_act {
|
||||
#define LEN(arr) (sizeof(arr) / sizeof((arr)[0]))
|
||||
|
||||
#define SECCOMP_RULESET_ADD(ruleset) do { \
|
||||
F_println("adding seccomp ruleset \"" #ruleset "\""); \
|
||||
if (opts & F_VERBOSE) F_println("adding seccomp ruleset \"" #ruleset "\""); \
|
||||
for (int i = 0; i < LEN(ruleset); i++) { \
|
||||
assert(ruleset[i].m_errno == EPERM || ruleset[i].m_errno == ENOSYS); \
|
||||
\
|
||||
|
@ -8,14 +8,15 @@
|
||||
#endif
|
||||
|
||||
typedef enum {
|
||||
F_EXT = 1 << 0,
|
||||
F_DENY_NS = 1 << 1,
|
||||
F_DENY_TTY = 1 << 2,
|
||||
F_DENY_DEVEL = 1 << 3,
|
||||
F_MULTIARCH = 1 << 4,
|
||||
F_LINUX32 = 1 << 5,
|
||||
F_CAN = 1 << 6,
|
||||
F_BLUETOOTH = 1 << 7,
|
||||
F_VERBOSE = 1 << 0,
|
||||
F_EXT = 1 << 1,
|
||||
F_DENY_NS = 1 << 2,
|
||||
F_DENY_TTY = 1 << 3,
|
||||
F_DENY_DEVEL = 1 << 4,
|
||||
F_MULTIARCH = 1 << 5,
|
||||
F_LINUX32 = 1 << 6,
|
||||
F_CAN = 1 << 7,
|
||||
F_BLUETOOTH = 1 << 8,
|
||||
} f_syscall_opts;
|
||||
|
||||
extern void F_println(char *v);
|
||||
|
@ -28,6 +28,7 @@ var resErr = [...]error{
|
||||
type SyscallOpts = C.f_syscall_opts
|
||||
|
||||
const (
|
||||
flagVerbose SyscallOpts = C.F_VERBOSE
|
||||
FlagExt SyscallOpts = C.F_EXT
|
||||
FlagDenyNS SyscallOpts = C.F_DENY_NS
|
||||
FlagDenyTTY SyscallOpts = C.F_DENY_TTY
|
||||
@ -64,6 +65,12 @@ func exportFilter(fd uintptr, opts SyscallOpts) error {
|
||||
multiarch = C.SCMP_ARCH_ARM
|
||||
}
|
||||
|
||||
// this removes repeated transitions between C and Go execution
|
||||
// when producing log output via F_println and CPrintln is nil
|
||||
if CPrintln != nil {
|
||||
opts |= flagVerbose
|
||||
}
|
||||
|
||||
res, err := C.f_export_bpf(C.int(fd), arch, multiarch, opts)
|
||||
if re := resErr[res]; re != nil {
|
||||
if err == nil {
|
||||
|
Loading…
Reference in New Issue
Block a user