[#506] Deny bucket names with dot

Signed-off-by: Marina Biryukova <m.biryukova@yadro.com>
This commit is contained in:
Marina Biryukova 2024-10-08 12:44:00 +03:00
parent 39fc7aa3ee
commit e35b582fe2
2 changed files with 5 additions and 11 deletions

View file

@ -1011,19 +1011,13 @@ func checkBucketName(bucketName string) error {
return apierr.GetAPIError(apierr.ErrInvalidBucketName) return apierr.GetAPIError(apierr.ErrInvalidBucketName)
} }
labels := strings.Split(bucketName, ".") for i, r := range bucketName {
for _, label := range labels { if r == '.' || (!isAlphaNum(r) && r != '-') {
if len(label) == 0 {
return apierr.GetAPIError(apierr.ErrInvalidBucketName) return apierr.GetAPIError(apierr.ErrInvalidBucketName)
} }
for i, r := range label { if (i == 0 || i == len(bucketName)-1) && r == '-' {
if !isAlphaNum(r) && r != '-' {
return apierr.GetAPIError(apierr.ErrInvalidBucketName) return apierr.GetAPIError(apierr.ErrInvalidBucketName)
} }
if (i == 0 || i == len(label)-1) && r == '-' {
return apierr.GetAPIError(apierr.ErrInvalidBucketName)
}
}
} }
return nil return nil

View file

@ -42,10 +42,10 @@ func TestCheckBucketName(t *testing.T) {
}{ }{
{name: "bucket"}, {name: "bucket"},
{name: "2bucket"}, {name: "2bucket"},
{name: "buc.ket"},
{name: "buc-ket"}, {name: "buc-ket"},
{name: "abc"}, {name: "abc"},
{name: "63aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}, {name: "63aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},
{name: "buc.ket", err: true},
{name: "buc.-ket", err: true}, {name: "buc.-ket", err: true},
{name: "bucket.", err: true}, {name: "bucket.", err: true},
{name: ".bucket", err: true}, {name: ".bucket", err: true},