From 804f959a1d0c9bfe88166a7541af4371460b468b Mon Sep 17 00:00:00 2001 From: linuxdaemon Date: Wed, 30 Jan 2019 18:46:13 -0600 Subject: 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 --- src/common/modes.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/common/modes.c') 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, -- cgit 1.4.1