From 50972096cd8bffd9b17dbdf656ec34c48edb8f86 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Fri, 29 Aug 2025 21:51:31 +0900 Subject: container/vfs: wrap decoder errors This passes line information and handles strconv errors so it reads better. Signed-off-by: Ophestra --- container/vfs/unfold.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'container/vfs/unfold.go') diff --git a/container/vfs/unfold.go b/container/vfs/unfold.go index ca0e37b7..d63f0a9f 100644 --- a/container/vfs/unfold.go +++ b/container/vfs/unfold.go @@ -4,9 +4,14 @@ import ( "iter" "path" "strings" - "syscall" ) +type UnfoldTargetError string + +func (e UnfoldTargetError) Error() string { + return "mount point " + string(e) + " never appeared in mountinfo" +} + // MountInfoNode positions a [MountInfoEntry] in its mount hierarchy. type MountInfoNode struct { *MountInfoEntry @@ -65,7 +70,8 @@ func (d *MountInfoDecoder) Unfold(target string) (*MountInfoNode, error) { } if targetIndex == -1 { - return nil, syscall.ESTALE + // target does not exist in parsed mountinfo + return nil, &DecoderError{Op: "unfold", Line: -1, Err: UnfoldTargetError(targetClean)} } for _, cur := range mountinfo { -- cgit v1.3.1