Commit 8c21ede9 authored by Juliusz Chroboczek's avatar Juliusz Chroboczek

Don't allow group names to start with a period.

parent d440cdf8
...@@ -24,8 +24,8 @@ message types. ...@@ -24,8 +24,8 @@ message types.
### Group ### Group
A group is a set of clients. It is identified by a human-readable name A group is a set of clients. It is identified by a human-readable name
that must not start or end with a slash "`/`" and must not have the that must not start or end with a slash "`/`", must not start with
substrings "`/../`" or "`/./`". a period "`.`", and must not contain the substrings "`/../`" or "`/./`".
### Client ### Client
......
...@@ -1085,6 +1085,11 @@ func Update() { ...@@ -1085,6 +1085,11 @@ func Update() {
) )
return nil return nil
} }
base := filepath.Base(filename)
if base[0] == '.' {
log.Printf("Group file %v ignored", filename)
return nil
}
name := filename[:len(filename)-5] name := filename[:len(filename)-5]
desc, err := GetDescription(name) desc, err := GetDescription(name)
if err != nil { if err != nil {
......
...@@ -262,6 +262,10 @@ func parseGroupName(prefix string, p string) string { ...@@ -262,6 +262,10 @@ func parseGroupName(prefix string, p string) string {
return "" return ""
} }
if name[0] == '.' {
return ""
}
if filepath.Separator != '/' && if filepath.Separator != '/' &&
strings.ContainsRune(name, filepath.Separator) { strings.ContainsRune(name, filepath.Separator) {
return "" return ""
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment