diff options
Diffstat (limited to 'internal/vfs/zip/archive.go')
-rw-r--r-- | internal/vfs/zip/archive.go | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/internal/vfs/zip/archive.go b/internal/vfs/zip/archive.go index 630d5fd5..6675e199 100644 --- a/internal/vfs/zip/archive.go +++ b/internal/vfs/zip/archive.go @@ -34,6 +34,7 @@ const ( var ( errNotSymlink = errors.New("not a symlink") errSymlinkSize = errors.New("symlink too long") + errNotFile = errors.New("not a file") ) // zipArchive implements the vfs.Root interface. @@ -167,6 +168,10 @@ func (a *zipArchive) Open(ctx context.Context, name string) (vfs.File, error) { return nil, os.ErrNotExist } + if !file.Mode().IsRegular() { + return nil, errNotFile + } + dataOffset, err := a.fs.dataOffsetCache.findOrFetch(a.namespace, name, func() (interface{}, error) { return file.DataOffset() }) |