Restrict repository names from matching hexadecimal strings

To avoid conflicting with layer IDs, repository names must
not be tagged with names that collide with hexadecimal strings.

Signed-off-by: Eric Windisch <eric@windisch.us>
This commit is contained in:
Eric Windisch 2014-08-17 20:50:15 -04:00
parent 94ff3f3e4d
commit 307e253d33
2 changed files with 13 additions and 0 deletions

View file

@ -23,6 +23,7 @@ var (
ErrAlreadyExists = errors.New("Image already exists")
ErrInvalidRepositoryName = errors.New("Invalid repository name (ex: \"registry.domain.tld/myrepos\")")
errLoginRequired = errors.New("Authentication is required.")
validHex = regexp.MustCompile(`^([a-f0-9]{64})$`)
)
type TimeoutType uint32
@ -218,6 +219,10 @@ func validateRepositoryName(repositoryName string) error {
if len(nameParts) < 2 {
namespace = "library"
name = nameParts[0]
if validHex.MatchString(name) {
return fmt.Errorf("Invalid repository name (%s), cannot specify 64-byte hexadecimal strings", name)
}
} else {
namespace = nameParts[0]
name = nameParts[1]