diff options
| author | 2019-04-19 12:23:53 +0100 | |
|---|---|---|
| committer | 2019-04-19 12:23:53 +0100 | |
| commit | bf7664612b00dfcf84c1a03bae2b009b9f1e1d94 (patch) | |
| tree | da2a390ea4d8d2d89b4097dab65f130d23555e15 /src/modules/m_namedmodes.cpp | |
| parent | Remove the OnNamesListItem event out of the core. (diff) | |
| download | inspircd++-bf7664612b00dfcf84c1a03bae2b009b9f1e1d94.tar.gz inspircd++-bf7664612b00dfcf84c1a03bae2b009b9f1e1d94.tar.bz2 inspircd++-bf7664612b00dfcf84c1a03bae2b009b9f1e1d94.zip | |
Fix namedmodes exposing non-key secret parameters to outsiders.
Diffstat (limited to 'src/modules/m_namedmodes.cpp')
| -rw-r--r-- | src/modules/m_namedmodes.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/modules/m_namedmodes.cpp b/src/modules/m_namedmodes.cpp index 3c8452e7b..977ac625f 100644 --- a/src/modules/m_namedmodes.cpp +++ b/src/modules/m_namedmodes.cpp @@ -38,10 +38,11 @@ static void DisplayList(LocalUser* user, Channel* channel) if (!channel->IsModeSet(mh)) continue; numeric.Add("+" + mh->name); - if (mh->NeedsParam(true)) + ParamModeBase* pm = mh->IsParameterMode(); + if (pm) { - if ((mh->name == "key") && (!channel->HasUser(user)) && (!user->HasPrivPermission("channels/auspex"))) - numeric.Add("<key>"); + if ((pm->IsParameterSecret()) && (!channel->HasUser(user)) && (!user->HasPrivPermission("channels/auspex"))) + numeric.Add("<" + mh->name + ">"); else numeric.Add(channel->GetModeParameter(mh)); } |
