diff options
| author | chrislu <chris.lu@gmail.com> | 2023-02-07 14:57:29 -0800 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2023-02-07 14:57:29 -0800 |
| commit | 1c2364936ae9a2aac0b111626ac2b9a936756bac (patch) | |
| tree | f9961fab31cf29f83201ec46cc08dc4883e516cd | |
| parent | 5de93fe4420b14ca63378cff0a5d2565920cb511 (diff) | |
| download | seaweedfs-1c2364936ae9a2aac0b111626ac2b9a936756bac.tar.xz seaweedfs-1c2364936ae9a2aac0b111626ac2b9a936756bac.zip | |
detect invalid bucket name
fix https://github.com/seaweedfs/seaweedfs/issues/4143
| -rw-r--r-- | weed/s3api/s3api_bucket_handlers.go | 9 |
1 files changed, 9 insertions, 0 deletions
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 { |
