summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/bs_act.c4
-rw-r--r--src/core/bs_assign.c6
-rw-r--r--src/core/bs_say.c4
-rw-r--r--version.log3
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.