commit 9ecd8f616f7fa03a98230c3bf1939b8f27455495 from: Alexander Barton date: Wed Mar 19 01:27:16 2014 UTC 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! (cherry picked from commit 20b52fe33dc3387d50790ed6da8c47c34277527a) commit - 4525425879ac6ae9252019b65ba9fade7513547e commit + 9ecd8f616f7fa03a98230c3bf1939b8f27455495 blob - 52126877dc1a6f27bc804b3a968499251d36e980 blob + b32a8e6a72892cc42f6fa86abac478ab9e91e23d --- src/ngircd/irc-op.c +++ src/ngircd/irc-op.c @@ -195,7 +195,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; } }