summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDukePyrolator <DukePyrolator@5417fbe8-f217-4b02-8779-1006273d7864>2009-07-02 16:36:26 +0000
committerDukePyrolator <DukePyrolator@5417fbe8-f217-4b02-8779-1006273d7864>2009-07-02 16:36:26 +0000
commitd68b3c3b6d4b6b0640eedeb4bfdc4e5b1f799b90 (patch)
tree8cf81a88ff3ae41555bfbf44b515f7599acad14c
parente8c63b5f43be302902d54773a3e66569c246218b (diff)
fix for bug #1088 (missing check for null pointer). thanks to Obi_Wan for reporting
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2353 5417fbe8-f217-4b02-8779-1006273d7864
-rw-r--r--src/core/cs_xop.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/core/cs_xop.c b/src/core/cs_xop.c
index 3ac2c4596..5ea9b3c9a 100644
--- a/src/core/cs_xop.c
+++ b/src/core/cs_xop.c
@@ -307,7 +307,7 @@ class XOPBase : public Command
process_numlist(nick, NULL, xop_list_callback, u, ci, &sent_header, level, messages[XOP_LIST_HEADER]);
else
{
- for (int i = 0; i < ci->access.size(); ++i)
+ for (size_t i = 0; i < ci->access.size(); ++i)
{
ChanAccess *access = ci->GetAccess(i);
if (nick && access->nc && !Anope::Match(access->nc->display, nick, false))
@@ -362,7 +362,9 @@ class XOPBase : public Command
ChannelInfo *ci = cs_findchan(chan);
- if (!(ci->flags & CI_XOP))
+ if (!ci)
+ notice_lang(s_ChanServ, u, CHAN_X_NOT_REGISTERED, chan);
+ else if (!(ci->flags & CI_XOP))
notice_lang(s_ChanServ, u, CHAN_XOP_ACCESS, s_ChanServ);
else if (!stricmp(cmd, "ADD"))
return this->DoAdd(u, params, ci, level, messages);
@@ -542,7 +544,7 @@ int xop_del_callback(User *u, int num, va_list args)
int uacc = va_arg(args, int);
int xlev = va_arg(args, int);
- if (num < 1 || num > ci->access.size())
+ if (num < 1 || num > static_cast<int>(ci->access.size()))
return 0;
*last = num;
@@ -574,7 +576,7 @@ int xop_list_callback(User *u, int num, va_list args)
int xlev = va_arg(args, int);
int xmsg = va_arg(args, int);
- if (num < 1 || num > ci->access.size())
+ if (num < 1 || num > static_cast<int>(ci->access.size()))
return 0;
return xop_list(u, num - 1, ci, sent_header, xlev, xmsg);