mirror of
https://github.com/inspircd/inspircd.git
synced 2025-03-09 10:39:02 -04:00
Use FindNickOnly in a few commands to prevent enumerating users via UID walking
This commit is contained in:
parent
cd6b7a8cda
commit
3cf9935005
@ -41,7 +41,12 @@ CmdResult CommandInvite::Handle (const std::vector<std::string>& parameters, Use
|
||||
|
||||
if (parameters.size() == 2 || parameters.size() == 3)
|
||||
{
|
||||
User* u = ServerInstance->FindNick(parameters[0]);
|
||||
User* u;
|
||||
if (IS_LOCAL(user))
|
||||
u = ServerInstance->FindNickOnly(parameters[0]);
|
||||
else
|
||||
u = ServerInstance->FindNick(parameters[0]);
|
||||
|
||||
Channel* c = ServerInstance->FindChan(parameters[1]);
|
||||
time_t timeout = 0;
|
||||
if (parameters.size() == 3)
|
||||
|
@ -54,7 +54,7 @@ CmdResult CommandIson::Handle (const std::vector<std::string>& parameters, User
|
||||
|
||||
for (unsigned int i = 0; i < parameters.size(); i++)
|
||||
{
|
||||
u = ServerInstance->FindNick(parameters[i]);
|
||||
u = ServerInstance->FindNickOnly(parameters[i]);
|
||||
if (ison_already.find(u) != ison_already.end())
|
||||
continue;
|
||||
|
||||
@ -79,7 +79,7 @@ CmdResult CommandIson::Handle (const std::vector<std::string>& parameters, User
|
||||
|
||||
while (list.GetToken(item))
|
||||
{
|
||||
u = ServerInstance->FindNick(item);
|
||||
u = ServerInstance->FindNickOnly(item);
|
||||
if (ison_already.find(u) != ison_already.end())
|
||||
continue;
|
||||
|
||||
|
@ -40,11 +40,16 @@ CmdResult CommandKick::Handle (const std::vector<std::string>& parameters, User
|
||||
{
|
||||
std::string reason;
|
||||
Channel* c = ServerInstance->FindChan(parameters[0]);
|
||||
User* u = ServerInstance->FindNick(parameters[1]);
|
||||
User* u;
|
||||
|
||||
if (ServerInstance->Parser->LoopCall(user, this, parameters, 1))
|
||||
return CMD_SUCCESS;
|
||||
|
||||
if (IS_LOCAL(user))
|
||||
u = ServerInstance->FindNickOnly(parameters[1]);
|
||||
else
|
||||
u = ServerInstance->FindNick(parameters[1]);
|
||||
|
||||
if (!u || !c)
|
||||
{
|
||||
user->WriteServ( "401 %s %s :No such nick/channel", user->nick.c_str(), u ? parameters[0].c_str() : parameters[1].c_str());
|
||||
|
@ -50,7 +50,7 @@ CmdResult CommandUserhost::Handle (const std::vector<std::string>& parameters, U
|
||||
|
||||
for (unsigned int i = 0; i < parameters.size(); i++)
|
||||
{
|
||||
User *u = ServerInstance->FindNick(parameters[i]);
|
||||
User *u = ServerInstance->FindNickOnly(parameters[i]);
|
||||
|
||||
if ((u) && (u->registered == REG_ALL))
|
||||
{
|
||||
|
@ -88,7 +88,7 @@ class CommandDccallow : public Command
|
||||
}
|
||||
|
||||
std::string nick = parameters[0].substr(1);
|
||||
User *target = ServerInstance->FindNick(nick);
|
||||
User *target = ServerInstance->FindNickOnly(nick);
|
||||
|
||||
if (target)
|
||||
{
|
||||
|
@ -83,7 +83,7 @@ class CommandSSLInfo : public Command
|
||||
|
||||
CmdResult Handle (const std::vector<std::string> ¶meters, User *user)
|
||||
{
|
||||
User* target = ServerInstance->FindNick(parameters[0]);
|
||||
User* target = ServerInstance->FindNickOnly(parameters[0]);
|
||||
|
||||
if (!target)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user