From: Alexander Barton Date: Mon, 31 Dec 2012 17:13:18 +0000 (+0100) Subject: Mode setting: only check channel user modes when on channel X-Git-Tag: rel-20.1~4 X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=20ddffca0d5ae5393adc57b67ba90e15d33e2ee3;p=ngircd.git Mode setting: only check channel user modes when on channel Only check the channel user modes of the initiator if he is joined to this channel and not an IRC operator enforcing modes (which requires the configuration option "OperCanUseMode" to be enabled), because trying to check channel user modes of a non-member results in this assertion: Assertion failed: (cl2chan != NULL), function Channel_UserModes, file channel.c, line 742. This closes bug #147, thanks to James Kirwill for tracking this down! --- diff --git a/src/ngircd/irc-mode.c b/src/ngircd/irc-mode.c index 32219975..a63a0f41 100644 --- a/src/ngircd/irc-mode.c +++ b/src/ngircd/irc-mode.c @@ -550,7 +550,7 @@ Channel_Mode(CLIENT *Client, REQUEST *Req, CLIENT *Origin, CHANNEL *Channel) if (arg_arg >= Req->argc) arg_arg = -1; - if(!is_machine) { + if(!is_machine && !is_oper) { o_mode_ptr = Channel_UserModes(Channel, Client); while( *o_mode_ptr ) { if ( *o_mode_ptr == 'q')