Module: ngircd.git Branch: master Commit: 20ddffca0d5ae5393adc57b67ba90e15d33e2ee3 URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=20ddf...
Author: Alexander Barton alex@barton.de Date: Mon Dec 31 18:13:18 2012 +0100
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 james.kirwill@bk.ru for tracking this down!
---
src/ngircd/irc-mode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/ngircd/irc-mode.c b/src/ngircd/irc-mode.c index 3221997..a63a0f4 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')