whois: check target is an oper before assuming they have a privset

The CHALLENGE functionality will set opername but not privset --
if an oper performs a WHOIS on someone currently half-way through
a challenge we will perform a NULL dereference.

Related to ircd-seven commit d7b05f7583babf6
This commit is contained in:
Aaron Jones 2016-09-20 13:46:33 +00:00
parent b1c32af98e
commit c6d884e877
No known key found for this signature in database
GPG key ID: EC6F86EE9CD840B5

View file

@ -320,7 +320,7 @@ single_whois(struct Client *source_p, struct Client *target_p, int operspy)
GlobalSetOptions.operstring));
}
if(MyClient(target_p) && !EmptyString(target_p->localClient->opername) && IsOper(source_p))
if(MyClient(target_p) && !EmptyString(target_p->localClient->opername) && IsOper(target_p) && IsOper(source_p))
{
char buf[512];
snprintf(buf, sizeof(buf), "is opered as %s, privset %s",