1
0
mirror of https://github.com/osmarks/ngircd.git synced 2024-10-27 20:36:18 +00:00

Channel Admins are not allowed to set Channel Owner status!

This was reported back in April 2021, thanks Sarah!

    Subject: NGIRCD bug report
    Date: April 28 2021, 14:30:08 MESZ
    To: alex@barton.de

    Hello,

    I am writing to you to report a bug in ngircd.
    In any give channel, if an user is with mode +a (admin), he/she can
    sets mode +/-q(owner) to any other user. This is not inline with the
    documentation.

    I've looked into the code irc-mode.c, apparently an if block is
    missing. Below are the code snippets that I believe fixes the bug.

This patch is what Sarah sent in. Thanks a lot!
This commit is contained in:
Alexander Barton 2024-01-09 16:36:10 +01:00
parent 5413518586
commit a06f33d4e5

View File

@ -740,6 +740,13 @@ Channel_Mode(CLIENT *Client, REQUEST *Req, CLIENT *Origin, CHANNEL *Channel)
break; break;
/* --- Channel user modes --- */ /* --- Channel user modes --- */
case 'q': /* Owner */ case 'q': /* Owner */
if(!is_oper && !is_machine && !is_owner) {
connected = IRC_WriteErrClient(Origin,
ERR_CHANOPPRIVTOOLOW_MSG,
Client_ID(Origin),
Channel_Name(Channel));
goto chan_exit;
}
case 'a': /* Channel admin */ case 'a': /* Channel admin */
if(!is_oper && !is_machine && !is_owner && !is_admin) { if(!is_oper && !is_machine && !is_owner && !is_admin) {
connected = IRC_WriteErrClient(Origin, connected = IRC_WriteErrClient(Origin,