From 82ceab7f7253253edddd77a46725bf9ae063f2e0 Mon Sep 17 00:00:00 2001 From: Egor Date: Sun, 8 May 2022 12:35:20 +0300 Subject: [PATCH] fix infinite loop with MODE +o --- irc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/irc.c b/irc.c index 807097b..1f8af04 100644 --- a/irc.c +++ b/irc.c @@ -569,17 +569,17 @@ int processPacket(struct client_data *client, char *source, char *command, int a case 'v': case 'o': if(!*argp) - continue; + break; const char *nick = *argp++; char which[2] = {*p, 0}; struct client_data *cl = findClient(nick); if (!cl) { err_nosuchnick(client, nick), sendbuf(client); - continue; + break; } if (!trie_get(&chan->members, cl->key)) { err_usernotinchannel(client, cl->nick, chan), sendbuf(client); - continue; + break; } trie_set(*p == 'o' ? &chan->o : &chan->v, cl->key, is_plus ? cl : NULL, NULL); copy_strf(&databuf, ":%s!%s@%s MODE %s %s%s %s\r\n", -- 2.56.0