about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorAlexander Barton <alex@barton.de>2012-01-06 17:42:52 +0100
committerAlexander Barton <alex@barton.de>2012-01-06 17:43:20 +0100
commit888664435aa81f20b204e2f9629678b606697bc5 (patch)
tree9e9c3c6e775a1eabb025a3c26e2487fa85d4cd15 /src
parent98493077a2d044aa08ee5cb4bd7054579e30fb57 (diff)
downloadngircd-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.c6
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) {