diff --git a/pkg/provider/crypto/file.go b/pkg/provider/crypto/file.go index 0ccdd89..d37ce51 100644 --- a/pkg/provider/crypto/file.go +++ b/pkg/provider/crypto/file.go @@ -155,11 +155,7 @@ func (f *file) Readdir(n int) ([]fs.FileInfo, error) { } fio := make([]fs.FileInfo, len(fis)) for i, fi := range fis { - p, err := f.fs.decPath(fi.Name()) - if err != nil { - continue - } - fio[i] = dir{FileInfo: fi, name: p} + fio[i] = dir{FileInfo: fi, name: f.fs.decPath(fi.Name())} } return fio, nil } diff --git a/pkg/provider/crypto/fs.go b/pkg/provider/crypto/fs.go index 05ff8ac..f11839f 100644 --- a/pkg/provider/crypto/fs.go +++ b/pkg/provider/crypto/fs.go @@ -7,7 +7,6 @@ import ( "io/fs" "os" "path/filepath" - "runtime" "strings" ) @@ -34,7 +33,7 @@ func NewFS(fs provider.FS, key []byte) (*FS, error) { }, nil } -func (fs *FS) encPath(path string) (n string, err error) { +func (fs *FS) encPath(path string) string { parts := strings.Split(path, "/") cparts := make([]string, len(parts)) for i, p := range parts { @@ -45,11 +44,10 @@ func (fs *FS) encPath(path string) (n string, err error) { fs.cbc.encrypt([]byte(p)), ) } - n = filepath.Join(cparts...) - return + return filepath.Join(cparts...) } -func (fs *FS) decPath(path string) (n string, err error) { +func (fs *FS) decPath(path string) string { parts := strings.Split(path, "/") pparts := make([]string, len(parts)) for i, p := range parts { @@ -57,8 +55,7 @@ func (fs *FS) decPath(path string) (n string, err error) { fs.cbc.decrypt([]byte(p)), ) } - n = filepath.Join(pparts...) - return + return filepath.Join(pparts...) } func (fs *FS) name(p string) string { @@ -66,28 +63,16 @@ func (fs *FS) name(p string) string { } func (fs *FS) Stat(p string) (fs.FileInfo, error) { - c, err := fs.encPath(p) - if err != nil { - return nil, err - } - fi, err := fs.fs.Stat(c) + fi, err := fs.fs.Stat(fs.encPath(p)) return stat{FileInfo: fi, name: fs.name(p)}, err } func (fs *FS) Remove(p string) error { - c, err := fs.encPath(p) - if err != nil { - return err - } - return fs.fs.Remove(c) + return fs.fs.Remove(fs.encPath(p)) } func (fs *FS) Open(p string) (provider.File, error) { - c, err := fs.encPath(p) - if err != nil { - return nil, err - } - f, err := fs.fs.Open(c) + f, err := fs.fs.Open(fs.encPath(p)) if err != nil { return nil, err } @@ -95,11 +80,7 @@ func (fs *FS) Open(p string) (provider.File, error) { } func (fs *FS) OpenFile(p string, flags int, mode os.FileMode) (provider.File, error) { - c, err := fs.encPath(p) - if err != nil { - return nil, err - } - f, err := fs.fs.OpenFile(c, flags, mode) + f, err := fs.fs.OpenFile(fs.encPath(p), flags, mode) if err != nil { return nil, err } @@ -107,11 +88,7 @@ func (fs *FS) OpenFile(p string, flags int, mode os.FileMode) (provider.File, er } func (fs *FS) MkdirAll(p string, mode os.FileMode) error { - c, err := fs.encPath(p) - if err != nil { - return err - } - return fs.fs.MkdirAll(c, mode) + return fs.fs.MkdirAll(fs.encPath(p), mode) } func (fs *FS) Root() string { @@ -123,7 +100,5 @@ func (fs *FS) Fstat(_ uintptr) (int64, error) { } func (fs *FS) Close() error { - fs.key = nil - runtime.GC() return nil }