From 888664435aa81f20b204e2f9629678b606697bc5 Mon Sep 17 00:00:00 2001 From: Alexander Barton Date: Fri, 6 Jan 2012 17:42:52 +0100 Subject: [PATCH] Channel modes: really break handling when MAX_CMODES_ARG is hit This fixes 98493077. --- src/ngircd/irc-mode.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ngircd/irc-mode.c b/src/ngircd/irc-mode.c index 9afe9078..7eb81cfa 100644 --- a/src/ngircd/irc-mode.c +++ b/src/ngircd/irc-mode.c @@ -492,7 +492,7 @@ Channel_Mode(CLIENT *Client, REQUEST *Req, CLIENT *Origin, CHANNEL *Channel) break; case 'k': /* Channel key */ if (mode_arg_count++ >= MAX_CMODES_ARG) - break; + goto chan_exit; if (!set) { if (modeok) x[0] = *mode_ptr; @@ -528,7 +528,7 @@ Channel_Mode(CLIENT *Client, REQUEST *Req, CLIENT *Origin, CHANNEL *Channel) break; case 'l': /* Member limit */ if (mode_arg_count++ >= MAX_CMODES_ARG) - break; + goto chan_exit; if (!set) { if (modeok) x[0] = *mode_ptr; @@ -640,7 +640,7 @@ Channel_Mode(CLIENT *Client, REQUEST *Req, CLIENT *Origin, CHANNEL *Channel) case 'I': /* Invite lists */ case 'b': /* Ban lists */ if (mode_arg_count++ >= MAX_CMODES_ARG) - break; + goto chan_exit; if (arg_arg > mode_arg) { /* modify list */ if (modeok) { -- 2.39.2