Only allow valid snomasks to be set

This commit is contained in:
Daniel Oaks 2018-04-16 13:20:37 +10:00
parent 22f9df388d
commit 5811226760
3 changed files with 26 additions and 1 deletions

View file

@ -54,9 +54,15 @@ func (client *Client) applyUserModeChanges(force bool, changes modes.ModeChanges
}
var masks []sno.Mask
if change.Op == modes.Add || change.Op == modes.Remove {
var newArg string
for _, char := range change.Arg {
masks = append(masks, sno.Mask(char))
mask := sno.Mask(char)
if sno.ValidMasks[mask] {
masks = append(masks, mask)
newArg += string(char)
}
}
change.Arg = newArg
}
if change.Op == modes.Add {
client.server.snomasks.AddMasks(client, masks...)