std: relocate seccomp lookup tables
All checks were successful
Test / Create distribution (push) Successful in 33s
Test / Sandbox (push) Successful in 2m18s
Test / Hakurei (push) Successful in 3m15s
Test / Hpkg (push) Successful in 4m5s
Test / Sandbox (race detector) (push) Successful in 4m9s
Test / Hakurei (race detector) (push) Successful in 5m0s
Test / Flake checks (push) Successful in 1m28s

This should enable resolving NativeRule in hst.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2025-11-05 04:48:05 +09:00
parent 54c0d6bf48
commit becaf8b6d7
15 changed files with 51 additions and 29 deletions

View File

@@ -5,32 +5,32 @@ package seccomp
import (
. "syscall"
"hakurei.app/container/std"
. "hakurei.app/container/std"
)
func Preset(presets std.FilterPreset, flags ExportFlag) (rules []NativeRule) {
func Preset(presets FilterPreset, flags ExportFlag) (rules []NativeRule) {
allowedPersonality := PersonaLinux
if presets&std.PresetLinux32 != 0 {
if presets&PresetLinux32 != 0 {
allowedPersonality = PersonaLinux32
}
presetDevelFinal := presetDevel(ScmpDatum(allowedPersonality))
l := len(presetCommon)
if presets&std.PresetDenyNS != 0 {
if presets&PresetDenyNS != 0 {
l += len(presetNamespace)
}
if presets&std.PresetDenyTTY != 0 {
if presets&PresetDenyTTY != 0 {
l += len(presetTTY)
}
if presets&std.PresetDenyDevel != 0 {
if presets&PresetDenyDevel != 0 {
l += len(presetDevelFinal)
}
if flags&AllowMultiarch == 0 {
l += len(presetEmu)
}
if presets&std.PresetExt != 0 {
if presets&PresetExt != 0 {
l += len(presetCommonExt)
if presets&std.PresetDenyNS != 0 {
if presets&PresetDenyNS != 0 {
l += len(presetNamespaceExt)
}
if flags&AllowMultiarch == 0 {
@@ -40,21 +40,21 @@ func Preset(presets std.FilterPreset, flags ExportFlag) (rules []NativeRule) {
rules = make([]NativeRule, 0, l)
rules = append(rules, presetCommon...)
if presets&std.PresetDenyNS != 0 {
if presets&PresetDenyNS != 0 {
rules = append(rules, presetNamespace...)
}
if presets&std.PresetDenyTTY != 0 {
if presets&PresetDenyTTY != 0 {
rules = append(rules, presetTTY...)
}
if presets&std.PresetDenyDevel != 0 {
if presets&PresetDenyDevel != 0 {
rules = append(rules, presetDevelFinal...)
}
if flags&AllowMultiarch == 0 {
rules = append(rules, presetEmu...)
}
if presets&std.PresetExt != 0 {
if presets&PresetExt != 0 {
rules = append(rules, presetCommonExt...)
if presets&std.PresetDenyNS != 0 {
if presets&PresetDenyNS != 0 {
rules = append(rules, presetNamespaceExt...)
}
if flags&AllowMultiarch == 0 {