Forbid empty and flag-looking network names

This commit is contained in:
Simon Ser 2022-02-07 21:38:36 +01:00
parent 3f91cfb8c3
commit 02dac11308

View File

@ -9,6 +9,7 @@ import (
"math/big" "math/big"
"net" "net"
"sort" "sort"
"strings"
"time" "time"
"gopkg.in/irc.v3" "gopkg.in/irc.v3"
@ -830,6 +831,14 @@ func (u *user) checkNetwork(record *Network) error {
return fmt.Errorf("unknown URL scheme %q", url.Scheme) return fmt.Errorf("unknown URL scheme %q", url.Scheme)
} }
if record.GetName() == "" {
return fmt.Errorf("network name cannot be empty")
}
if strings.HasPrefix(record.GetName(), "-") {
// Can be mixed up with flags when sending commands to the service
return fmt.Errorf("network name cannot start with a dash character")
}
for _, net := range u.networks { for _, net := range u.networks {
if net.GetName() == record.GetName() && net.ID != record.ID { if net.GetName() == record.GetName() && net.ID != record.ID {
return fmt.Errorf("a network with the name %q already exists", record.GetName()) return fmt.Errorf("a network with the name %q already exists", record.GetName())