repo: ngircd
action: commit
revision: 
path_from: 
revision_from: 20b52fe33dc3387d50790ed6da8c47c34277527a:
path_to: 
revision_to: 
git.thebackupbox.net
ngircd
git clone git://git.thebackupbox.net/ngircd
commit 20b52fe33dc3387d50790ed6da8c47c34277527a
Author: Alexander Barton 
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!

diff --git a/src/ngircd/irc-op.c b/src/ngircd/irc-op.c
index 23db579e725e1e54ef01faf4bfdd10616843ac76..
index ..449cecfb0534aaef10cb3fb51d69a6b7d682d6db 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;
 		}
 	}

-----END OF PAGE-----