aboutsummaryrefslogtreecommitdiffhomepage
path: root/helper/bwrap/seccomp-resolve.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-01-25 13:19:38 +0900
committerOphestra <cat@gensokyo.uk>2025-01-25 13:19:38 +0900
commit7b96cd6ded2668b04c908737ff393b805d34cc5c (patch)
treeb78c76a9ca30efd78ca2cd6caf8b9b2c55bc80c1 /helper/bwrap/seccomp-resolve.go
parent163f15e93f009d15ecc2f93932e26728aff9904b (diff)
helper/seccomp: do not call F_println if not verbose
This (slightly) improves performance. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'helper/bwrap/seccomp-resolve.go')
-rw-r--r--helper/bwrap/seccomp-resolve.go90
1 files changed, 0 insertions, 90 deletions
diff --git a/helper/bwrap/seccomp-resolve.go b/helper/bwrap/seccomp-resolve.go
deleted file mode 100644
index 860d720b..00000000
--- a/helper/bwrap/seccomp-resolve.go
+++ /dev/null
@@ -1,90 +0,0 @@
-package bwrap
-
-import (
- "fmt"
- "os"
-
- "git.gensokyo.uk/security/fortify/helper/seccomp"
- "git.gensokyo.uk/security/fortify/internal/fmsg"
-)
-
-type SyscallPolicy struct {
- // disable fortify extensions
- Compat bool `json:"compat"`
- // deny development syscalls
- DenyDevel bool `json:"deny_devel"`
- // deny multiarch/emulation syscalls
- Multiarch bool `json:"multiarch"`
- // allow PER_LINUX32
- Linux32 bool `json:"linux32"`
- // allow AF_CAN
- Can bool `json:"can"`
- // allow AF_BLUETOOTH
- Bluetooth bool `json:"bluetooth"`
-}
-
-type seccompBuilder struct {
- config *Config
-}
-
-func (s *seccompBuilder) Len() int {
- if s == nil {
- return 0
- }
- return 2
-}
-
-func (s *seccompBuilder) Append(args *[]string, extraFiles *[]*os.File) error {
- if s == nil {
- return nil
- }
- if f, err := s.config.resolveSeccomp(); err != nil {
- return err
- } else {
- extraFile(args, extraFiles, positionalArgs[Seccomp], f)
- return nil
- }
-}
-
-func (c *Config) resolveSeccomp() (*os.File, error) {
- if c.Syscall == nil {
- return nil, nil
- }
-
- // resolve seccomp filter opts
- var (
- opts seccomp.SyscallOpts
- optd []string
- optCond = [...]struct {
- v bool
- o seccomp.SyscallOpts
- d string
- }{
- {!c.Syscall.Compat, seccomp.FlagExt, "fortify"},
- {!c.UserNS, seccomp.FlagDenyNS, "denyns"},
- {c.NewSession, seccomp.FlagDenyTTY, "denytty"},
- {c.Syscall.DenyDevel, seccomp.FlagDenyDevel, "denydevel"},
- {c.Syscall.Multiarch, seccomp.FlagMultiarch, "multiarch"},
- {c.Syscall.Linux32, seccomp.FlagLinux32, "linux32"},
- {c.Syscall.Can, seccomp.FlagCan, "can"},
- {c.Syscall.Bluetooth, seccomp.FlagBluetooth, "bluetooth"},
- }
- )
- if seccomp.CPrintln != nil {
- optd = make([]string, 1, len(optCond)+1)
- optd[0] = "common"
- }
- for _, opt := range optCond {
- if opt.v {
- opts |= opt.o
- if fmsg.Verbose() {
- optd = append(optd, opt.d)
- }
- }
- }
- if seccomp.CPrintln != nil {
- seccomp.CPrintln(fmt.Sprintf("seccomp flags: %s", optd))
- }
-
- return seccomp.Export(opts)
-}