Merge pull request #3197 from ajhager/3138-names

Validate container names on creation. Fixes #3138
This commit is contained in:
Guillaume J. Charmes 2013-12-13 17:28:36 -08:00
commit a6928e70ac
1 changed files with 10 additions and 1 deletions

View File

@ -18,6 +18,7 @@ import (
"os"
"os/exec"
"path"
"regexp"
"sort"
"strings"
"sync"
@ -29,7 +30,10 @@ import (
// For more information see: http://sourceforge.net/p/aufs/aufs3-standalone/ci/aufs3.12/tree/config.mk
const MaxImageDepth = 127
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
@ -420,7 +424,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
}