diff options
| author | Alexander Barton <alex@barton.de> | 2012-01-06 17:42:52 +0100 |
|---|---|---|
| committer | Alexander Barton <alex@barton.de> | 2012-01-06 17:43:20 +0100 |
| commit | 888664435aa81f20b204e2f9629678b606697bc5 (patch) | |
| tree | 9e9c3c6e775a1eabb025a3c26e2487fa85d4cd15 /src | |
| parent | 98493077a2d044aa08ee5cb4bd7054579e30fb57 (diff) | |
| download | ngircd-888664435aa81f20b204e2f9629678b606697bc5.tar.gz ngircd-888664435aa81f20b204e2f9629678b606697bc5.zip | |
Channel modes: really break handling when MAX_CMODES_ARG is hit
This fixes 98493077.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ngircd/irc-mode.c | 6 |
1 files 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) { |