From 2f7aa87379465b65f545bf7809600b5241b028b6 Mon Sep 17 00:00:00 2001 From: brain Date: Wed, 6 Sep 2006 22:24:39 +0000 Subject: [PATCH] Fix crashbug when /who'ing people who arent on a channel (chan->GetPrefixChar() when chan == NULL is bad, mmk) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5153 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/cmd_who.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/cmd_who.cpp b/src/cmd_who.cpp index 0add5a09f..367bdb326 100644 --- a/src/cmd_who.cpp +++ b/src/cmd_who.cpp @@ -175,6 +175,8 @@ CmdResult cmd_who::Handle (const char** parameters, int pcnt, userrec *user) wholine = wholine + getlastchanname(oper) + " " + oper->ident + " " + (opt_showrealhost ? oper->host : oper->dhost) + " " + oper->server + " " + oper->nick + " "; + ch = ServerInstance->FindChan(getlastchanname(oper)); + /* away? */ if (*oper->awaymsg) { @@ -191,7 +193,7 @@ CmdResult cmd_who::Handle (const char** parameters, int pcnt, userrec *user) wholine.append("*"); } - wholine = wholine + ch->GetPrefixChar(oper) + " :0 " + oper->fullname; + wholine = wholine + (ch ? ch->GetPrefixChar(oper) : "") + " :0 " + oper->fullname; whoresults.push_back(wholine); } } @@ -207,6 +209,8 @@ CmdResult cmd_who::Handle (const char** parameters, int pcnt, userrec *user) wholine = wholine + getlastchanname(i->second) + " " + i->second->ident + " " + (opt_showrealhost ? i->second->host : i->second->dhost) + " " + i->second->server + " " + i->second->nick + " "; + ch = ServerInstance->FindChan(getlastchanname(i->second)); + /* away? */ if (*(i->second)->awaymsg) { @@ -223,7 +227,7 @@ CmdResult cmd_who::Handle (const char** parameters, int pcnt, userrec *user) wholine.append("*"); } - wholine = wholine + ch->GetPrefixChar(i->second) + " :0 " + i->second->fullname; + wholine = wholine + (ch ? ch->GetPrefixChar(i->second) : "") + " :0 " + i->second->fullname; whoresults.push_back(wholine); } } -- 2.39.5