aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-02-08 13:03:45 +0900
committerOphestra <cat@gensokyo.uk>2025-02-08 13:03:45 +0900
commite14923ae530dda0601c204fe17ac1956f54a45b0 (patch)
tree1578bbc4c08d9afc94c4b009cd2bf64260574f05 /internal
parent7aff3ead3afaa7461e0054fbef23fb571b4add0a (diff)
helper/proc: move package out of internal
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal')
-rw-r--r--internal/app/app.go2
-rw-r--r--internal/app/start.go2
-rw-r--r--internal/priv/init/early.go (renamed from internal/proc/priv/init/early.go)0
-rw-r--r--internal/priv/init/main.go (renamed from internal/proc/priv/init/main.go)2
-rw-r--r--internal/priv/init/payload.go (renamed from internal/proc/priv/init/payload.go)0
-rw-r--r--internal/priv/shim/main.go (renamed from internal/proc/priv/shim/main.go)4
-rw-r--r--internal/priv/shim/manager.go (renamed from internal/proc/priv/shim/manager.go)2
-rw-r--r--internal/priv/shim/payload.go (renamed from internal/proc/priv/shim/payload.go)0
-rw-r--r--internal/proc/fd.go45
-rw-r--r--internal/proc/files.go17
-rw-r--r--internal/proc/self.go26
11 files changed, 6 insertions, 94 deletions
diff --git a/internal/app/app.go b/internal/app/app.go
index 30f893a9..34b59bfc 100644
--- a/internal/app/app.go
+++ b/internal/app/app.go
@@ -6,7 +6,7 @@ import (
"git.gensokyo.uk/security/fortify/fst"
"git.gensokyo.uk/security/fortify/internal/linux"
- "git.gensokyo.uk/security/fortify/internal/proc/priv/shim"
+ "git.gensokyo.uk/security/fortify/internal/priv/shim"
)
type App interface {
diff --git a/internal/app/start.go b/internal/app/start.go
index 96198df5..aba331e7 100644
--- a/internal/app/start.go
+++ b/internal/app/start.go
@@ -11,7 +11,7 @@ import (
"git.gensokyo.uk/security/fortify/helper"
"git.gensokyo.uk/security/fortify/internal/fmsg"
- "git.gensokyo.uk/security/fortify/internal/proc/priv/shim"
+ "git.gensokyo.uk/security/fortify/internal/priv/shim"
"git.gensokyo.uk/security/fortify/internal/state"
"git.gensokyo.uk/security/fortify/internal/system"
)
diff --git a/internal/proc/priv/init/early.go b/internal/priv/init/early.go
index cc1c2f7e..cc1c2f7e 100644
--- a/internal/proc/priv/init/early.go
+++ b/internal/priv/init/early.go
diff --git a/internal/proc/priv/init/main.go b/internal/priv/init/main.go
index d9f57b3e..4c69312e 100644
--- a/internal/proc/priv/init/main.go
+++ b/internal/priv/init/main.go
@@ -8,9 +8,9 @@ import (
"syscall"
"time"
+ "git.gensokyo.uk/security/fortify/helper/proc"
"git.gensokyo.uk/security/fortify/internal"
"git.gensokyo.uk/security/fortify/internal/fmsg"
- "git.gensokyo.uk/security/fortify/internal/proc"
)
const (
diff --git a/internal/proc/priv/init/payload.go b/internal/priv/init/payload.go
index d1dc9ec3..d1dc9ec3 100644
--- a/internal/proc/priv/init/payload.go
+++ b/internal/priv/init/payload.go
diff --git a/internal/proc/priv/shim/main.go b/internal/priv/shim/main.go
index 7ad0a44b..4dccb876 100644
--- a/internal/proc/priv/shim/main.go
+++ b/internal/priv/shim/main.go
@@ -8,11 +8,11 @@ import (
"git.gensokyo.uk/security/fortify/fst"
"git.gensokyo.uk/security/fortify/helper"
+ "git.gensokyo.uk/security/fortify/helper/proc"
"git.gensokyo.uk/security/fortify/helper/seccomp"
"git.gensokyo.uk/security/fortify/internal"
"git.gensokyo.uk/security/fortify/internal/fmsg"
- "git.gensokyo.uk/security/fortify/internal/proc"
- init0 "git.gensokyo.uk/security/fortify/internal/proc/priv/init"
+ init0 "git.gensokyo.uk/security/fortify/internal/priv/init"
)
// everything beyond this point runs as unconstrained target user
diff --git a/internal/proc/priv/shim/manager.go b/internal/priv/shim/manager.go
index 064f5c87..106e4865 100644
--- a/internal/proc/priv/shim/manager.go
+++ b/internal/priv/shim/manager.go
@@ -10,9 +10,9 @@ import (
"strings"
"time"
+ "git.gensokyo.uk/security/fortify/helper/proc"
"git.gensokyo.uk/security/fortify/internal"
"git.gensokyo.uk/security/fortify/internal/fmsg"
- "git.gensokyo.uk/security/fortify/internal/proc"
)
// used by the parent process
diff --git a/internal/proc/priv/shim/payload.go b/internal/priv/shim/payload.go
index e659e3fd..e659e3fd 100644
--- a/internal/proc/priv/shim/payload.go
+++ b/internal/priv/shim/payload.go
diff --git a/internal/proc/fd.go b/internal/proc/fd.go
deleted file mode 100644
index e99abb38..00000000
--- a/internal/proc/fd.go
+++ /dev/null
@@ -1,45 +0,0 @@
-package proc
-
-import (
- "encoding/gob"
- "errors"
- "os"
- "strconv"
-)
-
-var (
- ErrNotSet = errors.New("environment variable not set")
- ErrInvalid = errors.New("bad file descriptor")
-)
-
-// Setup appends the read end of a pipe for payload transmission and returns its fd.
-func Setup(extraFiles *[]*os.File) (int, *gob.Encoder, error) {
- if r, w, err := os.Pipe(); err != nil {
- return -1, nil, err
- } else {
- fd := 3 + len(*extraFiles)
- *extraFiles = append(*extraFiles, r)
- return fd, gob.NewEncoder(w), nil
- }
-}
-
-// Receive retrieves payload pipe fd from the environment,
-// receives its payload and returns the Close method of the pipe.
-func Receive(key string, e any) (func() error, error) {
- var setup *os.File
-
- if s, ok := os.LookupEnv(key); !ok {
- return nil, ErrNotSet
- } else {
- if fd, err := strconv.Atoi(s); err != nil {
- return nil, err
- } else {
- setup = os.NewFile(uintptr(fd), "setup")
- if setup == nil {
- return nil, ErrInvalid
- }
- }
- }
-
- return func() error { return setup.Close() }, gob.NewDecoder(setup).Decode(e)
-}
diff --git a/internal/proc/files.go b/internal/proc/files.go
deleted file mode 100644
index 712713a2..00000000
--- a/internal/proc/files.go
+++ /dev/null
@@ -1,17 +0,0 @@
-package proc
-
-import (
- "os"
- "os/exec"
-)
-
-func ExtraFile(cmd *exec.Cmd, f *os.File) (fd uintptr) {
- return ExtraFileSlice(&cmd.ExtraFiles, f)
-}
-
-func ExtraFileSlice(extraFiles *[]*os.File, f *os.File) (fd uintptr) {
- // ExtraFiles: If non-nil, entry i becomes file descriptor 3+i.
- fd = uintptr(3 + len(*extraFiles))
- *extraFiles = append(*extraFiles, f)
- return
-}
diff --git a/internal/proc/self.go b/internal/proc/self.go
deleted file mode 100644
index 6dc92eb7..00000000
--- a/internal/proc/self.go
+++ /dev/null
@@ -1,26 +0,0 @@
-package proc
-
-import (
- "os"
- "sync"
-
- "git.gensokyo.uk/security/fortify/internal/fmsg"
-)
-
-var (
- executable string
- executableOnce sync.Once
-)
-
-func copyExecutable() {
- if name, err := os.Executable(); err != nil {
- fmsg.Fatalf("cannot read executable path: %v", err)
- } else {
- executable = name
- }
-}
-
-func MustExecutable() string {
- executableOnce.Do(copyExecutable)
- return executable
-}