summary refs log tree commit diff
diff options
context:
space:
mode:
authorNakidai <nakidai@disroot.org>2026-02-12 18:26:21 +0300
committerNakidai <nakidai@disroot.org>2026-02-12 18:26:21 +0300
commitec97c603288869efad52ed7235ae770f85a9d7e8 (patch)
tree6bdf1429ce95f1a40fe7b9c02428ab649b8caef9
parent113055484c7a2103a080953e4008e3098e4c7131 (diff)
downloadlibreircd-ec97c603288869efad52ed7235ae770f85a9d7e8.tar.gz
libreircd-ec97c603288869efad52ed7235ae770f85a9d7e8.zip
Fix KICK permissions
IRC operators should be able to change channel modes as well
-rw-r--r--handle.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/handle.c b/handle.c
index a8b1e5f..2190bcf 100644
--- a/handle.c
+++ b/handle.c
@@ -93,7 +93,7 @@ kick(struct Message *msg, struct Peer *peer)
 		if (ch->peers[i].p->fd == peer->fd)
 			break;
 	ensure(i != ch->peers_c, reply(peer, 442, ch->name), 0);
-	ensure(ch->peers[i].modes & CHANNEL_OPER, reply(peer, 482, ch->name), 0);
+	ensure(peer->modes & OPER || ch->peers[i].modes & CHANNEL_OPER, reply(peer, 482, ch->name), 0);
 
 	for (i = 0; i < ch->peers_c; ++i)
 		if (!strcmp(ch->peers[i].p->nick, msg->params[1]))