From ff74c93aee0148643f0b16b23df8aff6c2bc148c Mon Sep 17 00:00:00 2001 From: Jilles Tjoelker Date: Sat, 29 Mar 2008 23:09:45 +0100 Subject: [PATCH] Use ERR_NOPRIVS when an oper is not allowed to see admin-only /stats. This includes opers without the admin flag and admins on other servers. --- modules/m_stats.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/modules/m_stats.c b/modules/m_stats.c index acee006..6e7552e 100644 --- a/modules/m_stats.c +++ b/modules/m_stats.c @@ -226,13 +226,18 @@ m_stats(struct Client *client_p, struct Client *source_p, int parc, const char * /* Called for remote clients and for local opers, so check need_admin * and need_oper */ - if((stats_cmd_table[i].need_admin && !IsOperAdmin (source_p)) || - (stats_cmd_table[i].need_oper && !IsOper (source_p))) + if(stats_cmd_table[i].need_oper && !IsOper(source_p)) { sendto_one_numeric(source_p, ERR_NOPRIVILEGES, form_str (ERR_NOPRIVILEGES)); break; } + if(stats_cmd_table[i].need_admin && !IsOperAdmin(source_p)) + { + sendto_one(source_p, form_str(ERR_NOPRIVS), + me.name, source_p->name, "admin"); + break; + } /* Blah, stats L needs the parameters, none of the others do.. */ if(statchar == 'L' || statchar == 'l')