mount, cmount: don't pass huge filenames (>4k) to FUSE as it can't cope

This commit is contained in:
Nick Craig-Wood
2019-10-18 10:53:07 +01:00
parent 76f5e273d2
commit 59026c4761
3 changed files with 18 additions and 2 deletions

View File

@@ -246,7 +246,12 @@ func (fsys *FS) Readdir(dirPath string,
for _, item := range items {
node, ok := item.(vfs.Node)
if ok {
fill(node.Name(), nil, 0)
name := node.Name()
if len(name) > mountlib.MaxLeafSize {
fs.Errorf(dirPath, "Name too long (%d bytes) for FUSE, skipping: %s", len(name), name)
continue
}
fill(name, nil, 0)
}
}
itemsRead = len(items)