From 77f2c320a6b1d5290c7596d2c8f8b6ba358b5de9 Mon Sep 17 00:00:00 2001 From: Ophestra Umiker Date: Sun, 13 Oct 2024 16:56:10 +0900 Subject: [PATCH] shim: re-exec self on startup Signed-off-by: Ophestra Umiker --- internal/shim/main.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/internal/shim/main.go b/internal/shim/main.go index e5bca6f..5b3303b 100644 --- a/internal/shim/main.go +++ b/internal/shim/main.go @@ -7,6 +7,7 @@ import ( "fmt" "net" "os" + "path" "strconv" "syscall" @@ -18,6 +19,14 @@ import ( // proceed with caution! func shim(socket string) { + // re-exec + if len(os.Args) > 0 && os.Args[0] != "fortify" && path.IsAbs(os.Args[0]) { + if err := syscall.Exec(os.Args[0], []string{"fortify", "shim"}, os.Environ()); err != nil { + fmt.Println("fortify-shim: cannot re-exec self:", err) + // continue anyway + } + } + verbose.Prefix = "fortify-shim:" // dial setup socket