summaryrefslogtreecommitdiff
path: root/src/cmd_who.cpp
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-09-06 22:24:39 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-09-06 22:24:39 +0000
commit2f7aa87379465b65f545bf7809600b5241b028b6 (patch)
treeeca854d8178f691cd629a8d3365ff54fde1b20ea /src/cmd_who.cpp
parent90b37c20091293aa70bb2a87352e60f3b7d7efeb (diff)
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
Diffstat (limited to 'src/cmd_who.cpp')
-rw-r--r--src/cmd_who.cpp8
1 files 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);
}
}