From e902e16974aaf703514c5e5c7b06ab5e19bc821b Mon Sep 17 00:00:00 2001 From: Ed Kellett Date: Fri, 2 Aug 2019 21:56:10 +0100 Subject: [PATCH 1/2] m_stats: don't ratelimit with no server argument --- modules/m_stats.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/m_stats.c b/modules/m_stats.c index af433146..88bca7aa 100644 --- a/modules/m_stats.c +++ b/modules/m_stats.c @@ -212,7 +212,7 @@ m_stats(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_ statchar = parv[1][0]; - if(MyClient(source_p) && !IsOper(source_p)) + if(MyClient(source_p) && !IsOper(source_p) && parc > 2) { /* Check the user is actually allowed to do /stats, and isnt flooding */ if((last_used + ConfigFileEntry.pace_wait) > rb_current_time()) @@ -228,7 +228,7 @@ m_stats(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_ last_used = rb_current_time(); } - if(hunt_server (client_p, source_p, ":%s STATS %s :%s", 2, parc, parv) != HUNTED_ISME) + if(hunt_server(client_p, source_p, ":%s STATS %s :%s", 2, parc, parv) != HUNTED_ISME) return; if(tolower(statchar) != 'l') From 20276d401104e56b2b5cb5844d09bb7ca4a355a8 Mon Sep 17 00:00:00 2001 From: Ed Kellett Date: Fri, 2 Aug 2019 22:55:19 +0100 Subject: [PATCH 2/2] m_motd: don't ratelimit with no server argument --- modules/m_motd.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/modules/m_motd.c b/modules/m_motd.c index feca390c..f71ea801 100644 --- a/modules/m_motd.c +++ b/modules/m_motd.c @@ -67,17 +67,18 @@ m_motd(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p { static time_t last_used = 0; - if((last_used + ConfigFileEntry.pace_wait) > rb_current_time() || !ratelimit_client(source_p, 6)) - { + if (parc < 2) { + /* do nothing */ + } else if ((last_used + ConfigFileEntry.pace_wait) > rb_current_time() || !ratelimit_client(source_p, 6)) { /* safe enough to give this on a local connect only */ sendto_one(source_p, form_str(RPL_LOAD2HI), me.name, source_p->name, "MOTD"); sendto_one(source_p, form_str(RPL_ENDOFMOTD), me.name, source_p->name); return; - } - else + } else { last_used = rb_current_time(); + } if(hunt_server(client_p, source_p, ":%s MOTD :%s", 1, parc, parv) != HUNTED_ISME) return;