diff options
| author | Ophestra <cat@gensokyo.uk> | 2025-03-25 19:30:53 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2025-03-25 19:30:53 +0900 |
| commit | 33940265a6c193fe024ad11b8c61a2869ef858d9 (patch) | |
| tree | 7273072e6836f550a0b0ad34112621f2a10a9b7d | |
| parent | b39f3aeb59095aef123920d891fecf890ce0b088 (diff) | |
sandbox: do not ensure symlink target
This masks EEXIST on target and might clobber filesystems and lead to other confusing behaviour. Create its parent instead.
Signed-off-by: Ophestra <cat@gensokyo.uk>
| -rw-r--r-- | sandbox/sequential.go | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/sandbox/sequential.go b/sandbox/sequential.go index d0729622..5e421769 100644 --- a/sandbox/sequential.go +++ b/sandbox/sequential.go @@ -303,10 +303,7 @@ func (l *Symlink) apply(*Params) error { } target := toSysroot(l[1]) - if err := ensureFile(target, 0444, 0755); err != nil { - return err - } - if err := os.Remove(target); err != nil { + if err := os.MkdirAll(path.Dir(target), 0755); err != nil { return msg.WrapErr(err, err.Error()) } if err := os.Symlink(l[0], target); err != nil { |
