Validate container names on creation. Fixes #3138

Move valid container name regex to the top of the file

Added hyphen as a valid rune in container names.

Remove group in valid container name regex.
This commit is contained in:
Joseph Hager 2013-12-12 16:34:26 -05:00
parent 5a89c6f6df
commit f63cdf0260
1 changed files with 10 additions and 1 deletions

View File

@ -18,6 +18,7 @@ import (
"os"
"os/exec"
"path"
"regexp"
"sort"
"strings"
"sync"
@ -27,7 +28,10 @@ import (
// Set the max depth to the aufs restriction
const MaxImageDepth = 42
var defaultDns = []string{"8.8.8.8", "8.8.4.4"}
var (
defaultDns = []string{"8.8.8.8", "8.8.4.4"}
validContainerName = regexp.MustCompile(`^/?[a-zA-Z0-9_-]+$`)
)
type Capabilities struct {
MemoryLimit bool
@ -418,7 +422,12 @@ func (runtime *Runtime) Create(config *Config, name string) (*Container, []strin
if err != nil {
name = utils.TruncateID(id)
}
} else {
if !validContainerName.MatchString(name) {
return nil, nil, fmt.Errorf("Invalid container name (%s), only [a-zA-Z0-9_-] are allowed", name)
}
}
if name[0] != '/' {
name = "/" + name
}