From c0a6beecea91c024bd841dc8a035166a035d3a40 Mon Sep 17 00:00:00 2001 From: Andy Hsu Date: Sun, 9 Apr 2023 14:06:04 +0800 Subject: [PATCH] fix(alias): panic on nil pointer (close #4093) --- drivers/alias/util.go | 2 +- internal/fs/fs.go | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/drivers/alias/util.go b/drivers/alias/util.go index be0c9548..f86ed555 100644 --- a/drivers/alias/util.go +++ b/drivers/alias/util.go @@ -83,7 +83,7 @@ func (d *Alias) list(ctx context.Context, dst, sub string) ([]model.Obj, error) func (d *Alias) link(ctx context.Context, dst, sub string, args model.LinkArgs) (*model.Link, error) { reqPath := stdpath.Join(dst, sub) - storage, err := fs.GetStorage(reqPath, &fs.GetStoragesArgs{NoLog: true}) + storage, err := fs.GetStorage(reqPath, &fs.GetStoragesArgs{}) if err != nil { return nil, err } diff --git a/internal/fs/fs.go b/internal/fs/fs.go index 2fcbb4fd..ce7d87ef 100644 --- a/internal/fs/fs.go +++ b/internal/fs/fs.go @@ -21,7 +21,9 @@ type ListArgs struct { func List(ctx context.Context, path string, args *ListArgs) ([]model.Obj, error) { res, err := list(ctx, path, args) if err != nil { - log.Errorf("failed list %s: %+v", path, err) + if !args.NoLog { + log.Errorf("failed list %s: %+v", path, err) + } return nil, err } return res, nil @@ -33,8 +35,10 @@ type GetArgs struct { func Get(ctx context.Context, path string, args *GetArgs) (model.Obj, error) { res, err := get(ctx, path) - if err != nil && !args.NoLog { - log.Errorf("failed get %s: %+v", path, err) + if err != nil { + if !args.NoLog { + log.Errorf("failed get %s: %+v", path, err) + } return nil, err } return res, nil @@ -106,12 +110,11 @@ func PutAsTask(dstDirPath string, file *model.FileStream) error { } type GetStoragesArgs struct { - NoLog bool } func GetStorage(path string, args *GetStoragesArgs) (driver.Driver, error) { storageDriver, _, err := op.GetStorageAndActualPath(path) - if err != nil && !args.NoLog { + if err != nil { return nil, err } return storageDriver, nil