From 7c60a4d8e8baa77b42789c041838fa82dd7d36f9 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Fri, 14 Mar 2025 18:30:22 +0900 Subject: helper: embed context on creation Signed-off-by: Ophestra --- internal/app/shim/main.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'internal') 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 -- cgit v1.3.1