fs/reader: return proper error on invalid filename

This commit is contained in:
Michael Eischer
2025-04-11 22:07:31 +02:00
parent 81ac49f59d
commit ef1e137e7a
5 changed files with 30 additions and 20 deletions

View File

@@ -42,9 +42,12 @@ type readerItem struct {
// statically ensure that Local implements FS.
var _ FS = &Reader{}
func NewReader(name string, r io.ReadCloser, opts ReaderOptions) *Reader {
func NewReader(name string, r io.ReadCloser, opts ReaderOptions) (*Reader, error) {
items := make(map[string]readerItem)
name = readerCleanPath(name)
if name == "/" {
return nil, fmt.Errorf("invalid filename specified")
}
isFile := true
for {
@@ -89,7 +92,7 @@ func NewReader(name string, r io.ReadCloser, opts ReaderOptions) *Reader {
}
return &Reader{
items: items,
}
}, nil
}
func readerCleanPath(name string) string {