vfs/vfscache: fix silent write failure when mounting with remote:.

When mounting with 'remote:.' (dot notation for current directory),
the '.' is passed through toOSPath() which encodes it to full-width
'.' (U+FF0E) via EncodeDot. This caused the VFS cache data/meta root
to be written to a full-width-dot directory while the local cache
backend pointed to the canonicalized path, resulting in writes being
cached but never uploaded.

Fix by calling clean() on the relativeDirPath before toOSPath(),
so path.Clean() strips the trailing '/.' removing the dot before
encoding.
This commit is contained in:
Lucky945H
2026-05-17 00:52:59 +08:00
committed by Nick Craig-Wood
parent 2292ba0cd4
commit b2cb7f89c1

View File

@@ -97,6 +97,7 @@ func New(ctx context.Context, fremote fs.Fs, opt *vfscommon.Options, avFn AddVir
}
}
relativeDirPath = fremote.Name() + "/" + relativeDirPath
relativeDirPath = clean(relativeDirPath)
relativeDirOSPath := toOSPath(relativeDirPath)
// Create cache root dirs