From 71e82a9ccf74e767d9b84fcbe154cd114ddd1b7a Mon Sep 17 00:00:00 2001 From: Shivaram Lingamneni Date: Mon, 23 Oct 2017 18:01:28 -0400 Subject: [PATCH] move a check, avoiding a crash --- irc/modes.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/irc/modes.go b/irc/modes.go index 3756052e..2b0faf1c 100644 --- a/irc/modes.go +++ b/irc/modes.go @@ -327,11 +327,7 @@ func (client *Client) applyUserModeChanges(force bool, changes ModeChanges) Mode // MODE [ [...]] func umodeHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool { nickname, err := CasefoldName(msg.Params[0]) - target := server.clients.Get(nickname) - targetNick := target.getNick() - hasPrivs := client == target || msg.Command == "SAMODE" - if err != nil || target == nil { if len(msg.Params[0]) > 0 { client.Send(nil, server.name, ERR_NOSUCHNICK, client.nick, msg.Params[0], "No such nick") @@ -339,6 +335,9 @@ func umodeHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool { return false } + targetNick := target.getNick() + hasPrivs := client == target || msg.Command == "SAMODE" + if !hasPrivs { if len(msg.Params) > 1 { client.Send(nil, server.name, ERR_USERSDONTMATCH, client.nick, "Can't change modes for other users")