aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/app
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-03-14 18:30:22 +0900
committerOphestra <cat@gensokyo.uk>2025-03-14 18:30:22 +0900
commit7c60a4d8e8baa77b42789c041838fa82dd7d36f9 (patch)
treeb859b33bd4d522229e2b497992ef42243f1b22d7 /internal/app
parent4bb5d9780f3c46e942dc778d93c28391caee33c7 (diff)
helper: embed context on creation
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/app')
-rw-r--r--internal/app/shim/main.go10
1 files changed, 6 insertions, 4 deletions
diff --git a/internal/app/shim/main.go b/internal/app/shim/main.go
index 360c89b7..4ec3916c 100644
--- a/internal/app/shim/main.go
+++ b/internal/app/shim/main.go
@@ -124,7 +124,11 @@ func Main() {
if fmsg.Load() {
seccomp.CPrintln = log.Println
}
+
+ ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM)
+ defer stop() // unreachable
if b, err := helper.NewBwrap(
+ ctx,
conf, path.Join(fst.Tmp, "sbin/init0"), false,
nil, func(int, int) []string { return make([]string, 0) },
extraFiles,
@@ -132,12 +136,10 @@ func Main() {
); err != nil {
log.Fatalf("malformed sandbox config: %v", err)
} else {
- b.Stdin(os.Stdin).Stdout(os.Stdout).Stderr(os.Stderr)
- ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM)
- defer stop() // unreachable
+ b.SetStdin(os.Stdin).SetStdout(os.Stdout).SetStderr(os.Stderr)
// run and pass through exit code
- if err = b.Start(ctx, false); err != nil {
+ if err = b.Start(false); err != nil {
log.Fatalf("cannot start target process: %v", err)
} else if err = b.Wait(); err != nil {
var exitError *exec.ExitError