From f9c7bb40d488efffef17f8515ee361badea006c0 Mon Sep 17 00:00:00 2001 From: Roman Perekhod Date: Thu, 4 Jul 2024 17:56:02 +0200 Subject: [PATCH] fixed the issue when validate a space path --- changelog/unreleased/fix-space-put.md | 5 +++++ internal/http/services/owncloud/ocdav/put.go | 12 +++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) create mode 100644 changelog/unreleased/fix-space-put.md diff --git a/changelog/unreleased/fix-space-put.md b/changelog/unreleased/fix-space-put.md new file mode 100644 index 0000000000..fa33dde528 --- /dev/null +++ b/changelog/unreleased/fix-space-put.md @@ -0,0 +1,5 @@ +Bugfix: Validate a space path + +We've fixed the issue when validating a space path + +https://github.com/cs3org/reva/pull/4750 diff --git a/internal/http/services/owncloud/ocdav/put.go b/internal/http/services/owncloud/ocdav/put.go index 8246b76f22..822480c9fd 100644 --- a/internal/http/services/owncloud/ocdav/put.go +++ b/internal/http/services/owncloud/ocdav/put.go @@ -411,11 +411,13 @@ func (s *svc) handleSpacesPut(w http.ResponseWriter, r *http.Request, spaceID st return } - if err := ValidateName(filename(ref.Path), s.nameValidators); err != nil { - w.WriteHeader(http.StatusBadRequest) - b, err := errors.Marshal(http.StatusBadRequest, err.Error(), "", "") - errors.HandleWebdavError(&sublog, w, b, err) - return + if r.URL.Path != "/" { + if err := ValidateName(filepath.Base(ref.Path), s.nameValidators); err != nil { + w.WriteHeader(http.StatusBadRequest) + b, err := errors.Marshal(http.StatusBadRequest, err.Error(), "", "") + errors.HandleWebdavError(&sublog, w, b, err) + return + } } s.handlePut(ctx, w, r, &ref, sublog)