Module: ngircd.git Branch: master Commit: 20b52fe33dc3387d50790ed6da8c47c34277527a URL: http://ngircd.barton.de/cgi-bin/gitweb.cgi?p=ngircd.git&a=commit;h=20b52...
Author: Alexander Barton alex@barton.de Date: Mon Jan 27 22:59:54 2014 +0100
Correctly use cloaked IRC masks on "INVITE nickname"
The cloaked IRC mask of a user is his visible mask, so the daemon has to use it for generating the "one time" entries for the invite list of the given channel.
Without this patch, ngIRCd records the real IRC mask which will never match while the target client is "+x", and even worse, will disclose the real mask on "MODE #channel +I" commands :-/
Bug reported by Cahata on #ngircd, thanks!
---
src/ngircd/irc-op.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/ngircd/irc-op.c b/src/ngircd/irc-op.c index 23db579..449cecf 100644 --- a/src/ngircd/irc-op.c +++ b/src/ngircd/irc-op.c @@ -194,7 +194,8 @@ IRC_INVITE(CLIENT *Client, REQUEST *Req)
if (remember) { /* We must remember this invite */ - if (!Channel_AddInvite(chan, Client_Mask(target), true)) + if (!Channel_AddInvite(chan, Client_MaskCloaked(target), + true)) return CONNECTED; } }