proc: remove duplicate compile-time fortify reference
This is no longer needed since shim and init are now part of the main program. Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
@@ -3,8 +3,7 @@ package internal
|
||||
import "path"
|
||||
|
||||
var (
|
||||
Fortify = compPoison
|
||||
Fsu = compPoison
|
||||
Fsu = compPoison
|
||||
)
|
||||
|
||||
func Path(p string) (string, bool) {
|
||||
|
||||
@@ -37,14 +37,6 @@ func Main() {
|
||||
}
|
||||
}
|
||||
|
||||
// check path to fortify
|
||||
var fortifyPath string
|
||||
if p, ok := internal.Path(internal.Fortify); !ok {
|
||||
fmsg.Fatal("invalid fortify path, this copy of fortify is not compiled correctly")
|
||||
} else {
|
||||
fortifyPath = p
|
||||
}
|
||||
|
||||
// receive setup payload
|
||||
var (
|
||||
payload Payload
|
||||
@@ -135,7 +127,7 @@ func Main() {
|
||||
// bind fortify inside sandbox
|
||||
innerSbin := path.Join(fst.Tmp, "sbin")
|
||||
fortifyInnerPath := path.Join(innerSbin, "fortify")
|
||||
conf.Bind(fortifyPath, fortifyInnerPath)
|
||||
conf.Bind(proc.MustExecutable(), fortifyInnerPath)
|
||||
conf.Symlink(fortifyInnerPath, path.Join(innerSbin, "init"))
|
||||
|
||||
helper.BubblewrapName = payload.Exec[0] // resolved bwrap path by parent
|
||||
|
||||
@@ -56,7 +56,7 @@ func (s *Shim) WaitFallback() chan error {
|
||||
func (s *Shim) Start() (*time.Time, error) {
|
||||
// prepare user switcher invocation
|
||||
var fsu string
|
||||
if p, ok := internal.Check(internal.Fsu); !ok {
|
||||
if p, ok := internal.Path(internal.Fsu); !ok {
|
||||
fmsg.Fatal("invalid fsu path, this copy of fortify is not compiled correctly")
|
||||
panic("unreachable")
|
||||
} else {
|
||||
|
||||
26
internal/proc/self.go
Normal file
26
internal/proc/self.go
Normal file
@@ -0,0 +1,26 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user