diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-10-13 22:58:19 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-10-13 22:58:19 +0900 |
| commit | fadb42ec8daeeb8a576582d274cd4aeb64e535c0 (patch) | |
| tree | 20db92adde637b3d1bc7a931d0551590e80456cf /internal/outcome/spruntime.go | |
| parent | 40e4c9031652731622315e778a9bcace6cea6cb3 (diff) | |
internal/system: skip superfluous chmod
A successful chmod clobbers acl mask, breaking the fast path. This
change also fixes the ACL race.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/outcome/spruntime.go')
| -rw-r--r-- | internal/outcome/spruntime.go | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/internal/outcome/spruntime.go b/internal/outcome/spruntime.go index 9d36f252..55feac1d 100644 --- a/internal/outcome/spruntime.go +++ b/internal/outcome/spruntime.go @@ -76,9 +76,9 @@ type spRuntimeOp struct { func (s *spRuntimeOp) toSystem(state *outcomeStateSys) error { if state.Container.Flags&hst.FShareRuntime != 0 { runtimeDir, runtimeDirInst := s.commonPaths(state.outcomeState) - state.sys.Ensure(runtimeDir, 0700) + state.sys.Ensure(runtimeDir, 0700, true) state.sys.UpdatePermType(system.User, runtimeDir, acl.Execute) - state.sys.Ensure(runtimeDirInst, 0700) + state.sys.Ensure(runtimeDirInst, 0700, true) state.sys.UpdatePermType(system.User, runtimeDirInst, acl.Read|acl.Write|acl.Execute) } |
