aboutsummaryrefslogtreecommitdiffhomepage
path: root/container/initsymlink.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-08-20 20:03:02 +0900
committerOphestra <cat@gensokyo.uk>2025-08-20 20:03:02 +0900
commita07f9ed84c9fc131dba261c5175aa90b6f3e5331 (patch)
tree1f90a37918c06ccd59b58dfea31a53c75085d134 /container/initsymlink.go
parent51304b03af49efc66926f259507aa3a208535890 (diff)
container/initsymlink: check path equivalence by value
Fixes regression introduced while integrating Absolute. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'container/initsymlink.go')
-rw-r--r--container/initsymlink.go9
1 files changed, 7 insertions, 2 deletions
diff --git a/container/initsymlink.go b/container/initsymlink.go
index ae061694..35805544 100644
--- a/container/initsymlink.go
+++ b/container/initsymlink.go
@@ -54,8 +54,13 @@ func (l *SymlinkOp) apply(state *setupState) error {
return nil
}
-func (l *SymlinkOp) Is(op Op) bool { vl, ok := op.(*SymlinkOp); return ok && *l == *vl }
-func (*SymlinkOp) prefix() string { return "creating" }
+func (l *SymlinkOp) Is(op Op) bool {
+ vl, ok := op.(*SymlinkOp)
+ return ok && ((l == nil && vl == nil) ||
+ (l.Target != nil && vl.Target != nil && l.Target.Is(vl.Target)) &&
+ l.LinkName == vl.LinkName && l.Dereference == vl.Dereference)
+}
+func (*SymlinkOp) prefix() string { return "creating" }
func (l *SymlinkOp) String() string {
return fmt.Sprintf("symlink on %q linkname %q", l.Target, l.LinkName)
}