diff options
-rw-r--r-- | src/core/bs_act.c | 4 | ||||
-rw-r--r-- | src/core/bs_assign.c | 6 | ||||
-rw-r--r-- | src/core/bs_say.c | 4 | ||||
-rw-r--r-- | version.log | 3 |
4 files changed, 9 insertions, 8 deletions
diff --git a/src/core/bs_act.c b/src/core/bs_act.c index 22c851055..f9d174eba 100644 --- a/src/core/bs_act.c +++ b/src/core/bs_act.c @@ -74,12 +74,12 @@ int do_act(User * u) notice_lang(s_BotServ, u, CHAN_X_NOT_REGISTERED, chan); else if (ci->flags & CI_VERBOTEN) notice_lang(s_BotServ, u, CHAN_X_FORBIDDEN, chan); + else if (!check_access(u, ci, CA_SAY)) + notice_lang(s_BotServ, u, ACCESS_DENIED); else if (!ci->bi) notice_help(s_BotServ, u, BOT_NOT_ASSIGNED); else if (!ci->c || ci->c->usercount < BSMinUsers) notice_lang(s_BotServ, u, BOT_NOT_ON_CHANNEL, ci->name); - else if (!check_access(u, ci, CA_SAY)) - notice_lang(s_BotServ, u, ACCESS_DENIED); else { strnrepl(text, BUFSIZE, "\001", ""); anope_cmd_action(ci->bi->nick, ci->name, "%s", text); diff --git a/src/core/bs_assign.c b/src/core/bs_assign.c index 2a4328930..8030d3102 100644 --- a/src/core/bs_assign.c +++ b/src/core/bs_assign.c @@ -80,13 +80,13 @@ int do_assign(User * u) notice_lang(s_BotServ, u, PERMISSION_DENIED); else if (!(ci = cs_findchan(chan))) notice_lang(s_BotServ, u, CHAN_X_NOT_REGISTERED, chan); + else if ((ci->botflags & BS_NOBOT) + || (!check_access(u, ci, CA_ASSIGN) && !is_services_admin(u))) + notice_lang(s_BotServ, u, PERMISSION_DENIED); else if (ci->flags & CI_VERBOTEN) notice_lang(s_BotServ, u, CHAN_X_FORBIDDEN, chan); else if ((ci->bi) && (stricmp(ci->bi->nick, nick) == 0)) notice_lang(s_BotServ, u, BOT_ASSIGN_ALREADY, ci->bi->nick, chan); - else if ((ci->botflags & BS_NOBOT) - || (!check_access(u, ci, CA_ASSIGN) && !is_services_admin(u))) - notice_lang(s_BotServ, u, PERMISSION_DENIED); else { if (ci->bi) unassign(u, ci); diff --git a/src/core/bs_say.c b/src/core/bs_say.c index 384321738..9ddabcfcd 100644 --- a/src/core/bs_say.c +++ b/src/core/bs_say.c @@ -76,12 +76,12 @@ int do_say(User * u) notice_lang(s_BotServ, u, CHAN_X_NOT_REGISTERED, chan); else if (ci->flags & CI_VERBOTEN) notice_lang(s_BotServ, u, CHAN_X_FORBIDDEN, chan); + else if (!check_access(u, ci, CA_SAY)) + notice_lang(s_BotServ, u, ACCESS_DENIED); else if (!ci->bi) notice_help(s_BotServ, u, BOT_NOT_ASSIGNED); else if (!ci->c || ci->c->usercount < BSMinUsers) notice_lang(s_BotServ, u, BOT_NOT_ON_CHANNEL, ci->name); - else if (!check_access(u, ci, CA_SAY)) - notice_lang(s_BotServ, u, ACCESS_DENIED); else { if (text[0] != '\001') { anope_cmd_privmsg(ci->bi->nick, ci->name, "%s", text); diff --git a/version.log b/version.log index fb0736c1c..e57a9bbb5 100644 --- a/version.log +++ b/version.log @@ -9,10 +9,11 @@ VERSION_MAJOR="1" VERSION_MINOR="8" VERSION_PATCH="0" VERSION_EXTRA="-svn" -VERSION_BUILD="2182" +VERSION_BUILD="2187" # $Log$ # Changes since 1.8.0 Release +#Revision 2187 - Backport of bugfix for bug #1062 from SVN r2185 and 2186, patch from Adam, BS ASSIGN, BS ACT, and BS SAY should no longer send revealing error messages to users without access. #Revision 2182 - Fix memleak in channels.c from DukePyrolator. (Same fix applied to 1.9 earlier). Thanks DP! #Revision 2181 - Backport of bugfix for bug #1043 from SVN r2178, patch from Adam, CS LIST will no longer show suspended channels to normal users. #Revision 2180 - Backport of bugfix for bug #1030 from SVN r2179, patch from Adam, deleting from the channel access list now logs a message about the deleted items. |