aboutsummaryrefslogtreecommitdiffhomepage
path: root/cmd
diff options
context:
space:
mode:
authorOphestra Umiker <cat@ophivana.moe>2024-12-18 17:20:31 +0900
committerOphestra Umiker <cat@ophivana.moe>2024-12-18 17:20:31 +0900
commit7be53a24382fd8168da0bad34274343de0bfe76b (patch)
tree930a12e076f795e2a06348343cece0e3d16ff0ed /cmd
parent7f29b37a32a2214d4f025f31bbf9ab9f86fa3eac (diff)
cmd/fshim: switch to generic setup func
Signed-off-by: Ophestra Umiker <cat@ophivana.moe>
Diffstat (limited to 'cmd')
-rw-r--r--cmd/fshim/main.go14
1 files changed, 6 insertions, 8 deletions
diff --git a/cmd/fshim/main.go b/cmd/fshim/main.go
index 222419e3..d48a294e 100644
--- a/cmd/fshim/main.go
+++ b/cmd/fshim/main.go
@@ -13,6 +13,7 @@ import (
"git.ophivana.moe/security/fortify/helper"
"git.ophivana.moe/security/fortify/internal"
"git.ophivana.moe/security/fortify/internal/fmsg"
+ "git.ophivana.moe/security/fortify/internal/proc"
)
// everything beyond this point runs as unconstrained target user
@@ -110,17 +111,14 @@ func main() {
var extraFiles []*os.File
- // share config pipe
- if r, w, err := os.Pipe(); err != nil {
+ // serve setup payload
+ if fd, encoder, err := proc.Setup(&extraFiles); err != nil {
fmsg.Fatalf("cannot pipe: %v", err)
} else {
- conf.SetEnv[init0.Env] = strconv.Itoa(3 + len(extraFiles))
- extraFiles = append(extraFiles, r)
-
- fmsg.VPrintln("transmitting config to init")
+ conf.SetEnv[init0.Env] = strconv.Itoa(fd)
go func() {
- // stream config to pipe
- if err = gob.NewEncoder(w).Encode(&ic); err != nil {
+ fmsg.VPrintln("transmitting config to init")
+ if err = encoder.Encode(&ic); err != nil {
fmsg.Fatalf("cannot transmit init config: %v", err)
}
}()