From 31e097a19f5fac01cf3d744f582f4c07ec8fd3ca Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Wed, 10 Apr 2019 15:07:22 +0200 Subject: [PATCH] dashboard/app: stricter check on namespace names Check that namespaces don't contain bad chars. --- dashboard/app/config.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/dashboard/app/config.go b/dashboard/app/config.go index 1676bf6ce5b..c8a84eeab34 100644 --- a/dashboard/app/config.go +++ b/dashboard/app/config.go @@ -135,8 +135,9 @@ type KernelRepo struct { } var ( - clientNameRe = regexp.MustCompile("^[a-zA-Z0-9-_]{4,100}$") - clientKeyRe = regexp.MustCompile("^[a-zA-Z0-9]{16,128}$") + namespaceNameRe = regexp.MustCompile("^[a-zA-Z0-9-_.]{4,32}$") + clientNameRe = regexp.MustCompile("^[a-zA-Z0-9-_.]{4,100}$") + clientKeyRe = regexp.MustCompile("^[a-zA-Z0-9]{16,128}$") ) type ( @@ -202,8 +203,8 @@ func checkConfig(cfg *GlobalConfig) { } func checkNamespace(ns string, cfg *Config, namespaces, clientNames map[string]bool) { - if ns == "" { - panic("empty namespace name") + if !namespaceNameRe.MatchString(ns) { + panic(fmt.Sprintf("bad namespace name: %q", ns)) } if namespaces[ns] { panic(fmt.Sprintf("duplicate namespace %q", ns))