aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-03-25 19:30:53 +0900
committerOphestra <cat@gensokyo.uk>2025-03-25 19:30:53 +0900
commit33940265a6c193fe024ad11b8c61a2869ef858d9 (patch)
tree7273072e6836f550a0b0ad34112621f2a10a9b7d
parentb39f3aeb59095aef123920d891fecf890ce0b088 (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.go5
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 {