aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-10-10 04:50:07 +0900
committerOphestra <cat@gensokyo.uk>2025-10-10 05:11:32 +0900
commit776650af01d56d1c38861420de7f4a077f0a61f8 (patch)
tree04c4f7c5bf412de50b6cf13a240cb7c0fa77c5b5 /internal
parent109aaee6593ac6e72d23b817e5b75292c2ed7bed (diff)
hst/config: negative WaitDelay bypasses default
This behaviour might be useful, so do not lock it out. This change also fixes an oversight where the unchecked value is used to determine ForwardCancel. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal')
-rw-r--r--internal/app/outcome.go4
-rw-r--r--internal/app/spcontainer.go2
2 files changed, 4 insertions, 2 deletions
diff --git a/internal/app/outcome.go b/internal/app/outcome.go
index 84a4bae3..0999ae91 100644
--- a/internal/app/outcome.go
+++ b/internal/app/outcome.go
@@ -81,7 +81,9 @@ func (s *outcomeState) populateEarly(k syscallDispatcher, msg message.Msg) {
s.Shim = &shimParams{PrivPID: os.Getpid(), Verbose: msg.IsVerbose()}
// enforce bounds and default early
- if s.Container.WaitDelay <= 0 {
+ if s.Container.WaitDelay < 0 {
+ s.Shim.WaitDelay = 0
+ } else if s.Container.WaitDelay == 0 {
s.Shim.WaitDelay = hst.WaitDelayDefault
} else if s.Container.WaitDelay > hst.WaitDelayMax {
s.Shim.WaitDelay = hst.WaitDelayMax
diff --git a/internal/app/spcontainer.go b/internal/app/spcontainer.go
index b6378312..3426e7ea 100644
--- a/internal/app/spcontainer.go
+++ b/internal/app/spcontainer.go
@@ -65,7 +65,7 @@ func (s *spParamsOp) toContainer(state *outcomeStateParams) error {
// the container is canceled when shim is requested to exit or receives an interrupt or termination signal;
// this behaviour is implemented in the shim
- state.params.ForwardCancel = state.Container.WaitDelay >= 0
+ state.params.ForwardCancel = state.Shim.WaitDelay > 0
if state.Container.Multiarch {
state.params.SeccompFlags |= seccomp.AllowMultiarch