From d68b3c3b6d4b6b0640eedeb4bfdc4e5b1f799b90 Mon Sep 17 00:00:00 2001 From: DukePyrolator Date: Thu, 2 Jul 2009 16:36:26 +0000 Subject: [PATCH] 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 --- src/core/cs_xop.c | 10 ++++++---- 1 file 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(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(ci->access.size())) return 0; return xop_list(u, num - 1, ci, sent_header, xlev, xmsg);