Skip to content

Commit 5b10395

Browse files
Ensure that tag name is not empty if name contains colon (#2094)
1 parent 4eb8c4d commit 5b10395

File tree

4 files changed

+6
-1
lines changed

4 files changed

+6
-1
lines changed

pkg/name/digest_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ var badDigestNames = []string{
5555
"repo@sha256:" + strings.Repeat(":", 64),
5656
"repo@sha256:" + strings.Repeat("sh", 32),
5757
"repo@sha256:" + validDigest + "@" + validDigest,
58+
"library/nginx:@" + validDigest,
5859
}
5960

6061
func TestNewDigestStrictValidation(t *testing.T) {

pkg/name/tag.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,9 @@ func NewTag(name string, opts ...Option) (Tag, error) {
8585
if len(parts) > 1 && !strings.Contains(parts[len(parts)-1], regRepoDelimiter) {
8686
base = strings.Join(parts[:len(parts)-1], tagDelim)
8787
tag = parts[len(parts)-1]
88+
if tag == "" {
89+
return Tag{}, newErrBadName("%s must specify a tag name after the colon", name)
90+
}
8891
}
8992

9093
// We don't require a tag, but if we get one check it's valid,

pkg/name/tag_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ var badTagNames = []string{
4040
"gcr.io/project-id/bad_chars:c@n'tuse",
4141
"gcr.io/project-id/wrong-length:white space",
4242
"gcr.io/project-id/too-many-chars:thisisthetagthatneverendsitgoesonandonmyfriendsomepeoplestartedtaggingitnotknowingwhatitwasandtheyllcontinuetaggingitforeverjustbecausethisisthetagthatneverends",
43+
"library/ubuntu:",
4344
}
4445

4546
func TestNewTagStrictValidation(t *testing.T) {

pkg/v1/remote/error_roundtrip_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ func TestStatusCodeReturned(t *testing.T) {
5555
o := httptest.NewServer(tc.Handler)
5656
defer o.Close()
5757

58-
ref, err := name.NewDigest(strings.TrimPrefix(o.URL+"/foo:@sha256:53b27244ffa2f585799adbfaf79fba5a5af104597751b289c8b235e7b8f7ebf5", "http://"))
58+
ref, err := name.NewDigest(strings.TrimPrefix(o.URL+"/foo@sha256:53b27244ffa2f585799adbfaf79fba5a5af104597751b289c8b235e7b8f7ebf5", "http://"))
5959

6060
if err != nil {
6161
t.Fatalf("Unable to parse digest: %v", err)

0 commit comments

Comments
 (0)