Browse code

Ensure container names start with a-zA-Z0-9

Closes #8012.

Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)

Jessica Frazelle authored on 2014/09/13 02:45:07
Showing 2 changed files
... ...
@@ -178,3 +178,20 @@ func TestGetFullName(t *testing.T) {
178 178
 		t.Fatal("Error should not be nil")
179 179
 	}
180 180
 }
181
+
182
+func TestValidContainerNames(t *testing.T) {
183
+	invalidNames := []string{"-rm", "&sdfsfd", "safd%sd"}
184
+	validNames := []string{"word-word", "word_word", "1weoid"}
185
+
186
+	for _, name := range invalidNames {
187
+		if validContainerNamePattern.MatchString(name) {
188
+			t.Fatalf("%q is not a valid container name and was returned as valid.", name)
189
+		}
190
+	}
191
+
192
+	for _, name := range validNames {
193
+		if !validContainerNamePattern.MatchString(name) {
194
+			t.Fatalf("%q is a valid container name and was returned as invalid.", name)
195
+		}
196
+	}
197
+}
... ...
@@ -42,7 +42,7 @@ import (
42 42
 
43 43
 var (
44 44
 	DefaultDns                = []string{"8.8.8.8", "8.8.4.4"}
45
-	validContainerNameChars   = `[a-zA-Z0-9_.-]`
45
+	validContainerNameChars   = `[a-zA-Z0-9][a-zA-Z0-9_.-]`
46 46
 	validContainerNamePattern = regexp.MustCompile(`^/?` + validContainerNameChars + `+$`)
47 47
 )
48 48