3
0
mirror of https://github.com/ergochat/ergo.git synced 2024-11-22 11:59:40 +01:00

fix casefolding issue in muting RELAYMSG

Reported by @mogad0n; the mute mask was being case-canonicalized,
but the RELAYMSG identifier wasn't being case-canonicalized before
the check.
This commit is contained in:
Shivaram Lingamneni 2021-11-16 18:39:38 -05:00
parent 42aafc1f0c
commit bfae13aad9

View File

@ -2678,7 +2678,7 @@ func relaymsgHandler(server *Server, client *Client, msg ircmsg.Message, rb *Res
message := utils.MakeMessage(rawMessage) message := utils.MakeMessage(rawMessage)
nick := msg.Params[1] nick := msg.Params[1]
_, err := CasefoldName(nick) cfnick, err := CasefoldName(nick)
if err != nil { if err != nil {
rb.Add(nil, server.name, "FAIL", "RELAYMSG", "INVALID_NICK", client.t("Invalid nickname")) rb.Add(nil, server.name, "FAIL", "RELAYMSG", "INVALID_NICK", client.t("Invalid nickname"))
return false return false
@ -2687,7 +2687,7 @@ func relaymsgHandler(server *Server, client *Client, msg ircmsg.Message, rb *Res
rb.Add(nil, server.name, "FAIL", "RELAYMSG", "INVALID_NICK", fmt.Sprintf(client.t("Relayed nicknames MUST contain a relaymsg separator from this set: %s"), config.Server.Relaymsg.Separators)) rb.Add(nil, server.name, "FAIL", "RELAYMSG", "INVALID_NICK", fmt.Sprintf(client.t("Relayed nicknames MUST contain a relaymsg separator from this set: %s"), config.Server.Relaymsg.Separators))
return false return false
} }
if channel.relayNickMuted(nick) { if channel.relayNickMuted(cfnick) {
rb.Add(nil, server.name, "FAIL", "RELAYMSG", "BANNED", fmt.Sprintf(client.t("%s is banned from relaying to the channel"), nick)) rb.Add(nil, server.name, "FAIL", "RELAYMSG", "BANNED", fmt.Sprintf(client.t("%s is banned from relaying to the channel"), nick))
return false return false
} }