utils: BucketNames with double periods and ip address should be rejected. (#2213)

Fixes #2212
This commit is contained in:
Harshavardhana
2016-07-15 17:30:37 -07:00
committed by GitHub
parent cbb6b48b94
commit 2d38046a5a
2 changed files with 6 additions and 1 deletions

View File

@@ -39,6 +39,7 @@ const (
// validBucket regexp.
var validBucket = regexp.MustCompile(`^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$`)
var isIPAddress = regexp.MustCompile(`^(\d+\.){3}\d+$`)
// IsValidBucketName verifies a bucket name in accordance with Amazon's
// requirements. It must be 3-63 characters long, can contain dashes
@@ -51,7 +52,9 @@ func IsValidBucketName(bucket string) bool {
if bucket[0] == '.' || bucket[len(bucket)-1] == '.' {
return false
}
return validBucket.MatchString(bucket)
return (validBucket.MatchString(bucket) &&
!isIPAddress.MatchString(bucket) &&
!strings.Contains(bucket, ".."))
}
// IsValidObjectName verifies an object name in accordance with Amazon's