summary refs log tree commit diff stats
path: root/src/common/modes.c
diff options
context:
space:
mode:
authorlinuxdaemon <linuxdaemon@users.noreply.github.com>2019-01-30 18:46:13 -0600
committerPatrick <tingping@tingping.se>2019-01-30 19:46:13 -0500
commit804f959a1d0c9bfe88166a7541af4371460b468b (patch)
tree2772bc3c9c1a1f56fa8419434e0b6f280f0197ab /src/common/modes.c
parent7abeb10cf1f82fbad4d167f9e6f6918e1f47650b (diff)
Remove : from various trailing parameters (#2301)
Partial fix for #2271 

This isn't an exhaustive list, but it's everything I could find. The bug still exists in the parser though, this is just a workaround for the moment
Diffstat (limited to 'src/common/modes.c')
-rw-r--r--src/common/modes.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/common/modes.c b/src/common/modes.c
index c65bf279..3c0ac8ab 100644
--- a/src/common/modes.c
+++ b/src/common/modes.c
@@ -735,6 +735,8 @@ handle_mode (server * serv, char *word[], char *word_eol[],
 		if (!(*word[i + offset]))
 			break;
 		num_args++;
+		if (word[i + offset][0] == ':')
+			break;
 	}
 
 	/* count the number of modes (without the -/+ chars */
@@ -765,7 +767,7 @@ handle_mode (server * serv, char *word[], char *word_eol[],
 			if ((all_modes_have_args || mode_has_arg (serv, sign, *modes)) && arg < (num_args + 1))
 			{
 				arg++;
-				argstr = word[arg + offset];
+				argstr = STRIP_COLON(word, word_eol, arg+offset);
 			}
 			handle_single_mode (&mr, sign, *modes, nick, chan,
 									  argstr, numeric_324 || prefs.hex_irc_raw_modes,