diff --git a/group/group.go b/group/group.go index 36422a2..27262be 100644 --- a/group/group.go +++ b/group/group.go @@ -420,10 +420,14 @@ func Add(name string, desc *Description) (*Group, error) { } func validGroupName(name string) bool { - if filepath.Separator != '/' && - strings.ContainsRune(name, filepath.Separator) { + if strings.ContainsRune(name, '\\') { return false } + if s := filepath.Separator; s != '/' && s != '\\' { + if strings.ContainsRune(name, s) { + return false + } + } s := path.Clean("/" + name) if s == "/" { diff --git a/group/group_test.go b/group/group_test.go index 612b05d..11fb7a5 100644 --- a/group/group_test.go +++ b/group/group_test.go @@ -338,6 +338,7 @@ func TestValidGroupName(t *testing.T) { {"foo/..", false}, {"foo/./bar", false}, {"foo/../bar", false}, + {"foo\\bar", false}, {"foo", true}, {"foo/bar", true}, }