diff options
| author | Ophestra <cat@gensokyo.uk> | 2025-03-25 01:52:49 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2025-03-25 01:52:49 +0900 |
| commit | 5c4058d5ac7e7944973ca8216c258fc50c194e22 (patch) | |
| tree | c06597903233c75eca5a1edae8b06d93f0f81774 /sandbox/sequential.go | |
| parent | e732dca7629edb503df0c65df5f37a99600d567d (diff) | |
app: run in native sandbox
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'sandbox/sequential.go')
| -rw-r--r-- | sandbox/sequential.go | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/sandbox/sequential.go b/sandbox/sequential.go index d6967035..d0729622 100644 --- a/sandbox/sequential.go +++ b/sandbox/sequential.go @@ -301,7 +301,15 @@ func (l *Symlink) apply(*Params) error { return msg.WrapErr(syscall.EBADE, fmt.Sprintf("path %q is not absolute", l[1])) } - if err := os.Symlink(l[0], toSysroot(l[1])); err != nil { + + target := toSysroot(l[1]) + if err := ensureFile(target, 0444, 0755); err != nil { + return err + } + if err := os.Remove(target); err != nil { + return msg.WrapErr(err, err.Error()) + } + if err := os.Symlink(l[0], target); err != nil { return msg.WrapErr(err, err.Error()) } return nil |
