From dda4d036360718b649ea9cc84b247302a4eab2b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Thu, 3 Nov 2022 14:26:19 +0100 Subject: [PATCH] add missing error check in decomposedfs (#3430) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add missing error check in decomposedfs Signed-off-by: Jörn Friedrich Dreyer * disable codacy Signed-off-by: Jörn Friedrich Dreyer Signed-off-by: Jörn Friedrich Dreyer --- changelog/unreleased/decomposedfs-check-error.md | 6 ++++++ pkg/storage/utils/decomposedfs/spaces.go | 9 +++++---- 2 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 changelog/unreleased/decomposedfs-check-error.md diff --git a/changelog/unreleased/decomposedfs-check-error.md b/changelog/unreleased/decomposedfs-check-error.md new file mode 100644 index 0000000000..964a9f5a05 --- /dev/null +++ b/changelog/unreleased/decomposedfs-check-error.md @@ -0,0 +1,6 @@ +Bugfix: add missing error check in decomposedfs + +During space creation the decomposedfs now checks for errors when trying to read the root node. This prevents a panic by no longer calling InternalPath on the node. + +https://github.com/cs3org/reva/pull/3430 +https://github.com/owncloud/ocis/issues/4961 diff --git a/pkg/storage/utils/decomposedfs/spaces.go b/pkg/storage/utils/decomposedfs/spaces.go index aaadd67c3f..fcf9ca7508 100644 --- a/pkg/storage/utils/decomposedfs/spaces.go +++ b/pkg/storage/utils/decomposedfs/spaces.go @@ -83,11 +83,12 @@ func (fs *Decomposedfs) CreateStorageSpace(ctx context.Context, req *provider.Cr } root, err := node.ReadNode(ctx, fs.lu, spaceID, spaceID, true) // will fall into `Exists` case below - if err == nil && root.Exists { + switch { + case err != nil: + return nil, err + case root.Exists: return nil, errtypes.AlreadyExists("decomposedfs: spaces: space already exists") - } - - if !fs.canCreateSpace(ctx, spaceID) { + case !fs.canCreateSpace(ctx, spaceID): return nil, errtypes.PermissionDenied(spaceID) }