From 1c2364936ae9a2aac0b111626ac2b9a936756bac Mon Sep 17 00:00:00 2001 From: chrislu Date: Tue, 7 Feb 2023 14:57:29 -0800 Subject: detect invalid bucket name fix https://github.com/seaweedfs/seaweedfs/issues/4143 --- weed/s3api/s3api_bucket_handlers.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/weed/s3api/s3api_bucket_handlers.go b/weed/s3api/s3api_bucket_handlers.go index 9e215db9e..9a430b337 100644 --- a/weed/s3api/s3api_bucket_handlers.go +++ b/weed/s3api/s3api_bucket_handlers.go @@ -6,6 +6,7 @@ import ( "errors" "fmt" "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil" + "github.com/seaweedfs/seaweedfs/weed/s3api/s3bucket" "github.com/seaweedfs/seaweedfs/weed/util" "math" "net/http" @@ -84,6 +85,14 @@ func (s3a *S3ApiServer) PutBucketHandler(w http.ResponseWriter, r *http.Request) bucket, _ := s3_constants.GetBucketAndObject(r) glog.V(3).Infof("PutBucketHandler %s", bucket) + // validate the bucket name + err := s3bucket.VerifyS3BucketName(bucket) + if err != nil { + glog.Errorf("put invalid bucket name: %v %v", bucket, err) + s3err.WriteErrorResponse(w, r, s3err.ErrInvalidBucketName) + return + } + // avoid duplicated buckets errCode := s3err.ErrNone if err := s3a.WithFilerClient(false, func(client filer_pb.SeaweedFilerClient) error { -- cgit v1.2.3