G-LINES: Forbid remote modifications if "AllowRemoteOper" is not set
Explicitely forbid remote servers to modify "x-lines" (G-LINES) when the "AllowRemoteOper" configuration option isn't set, even when the command seems to originate from the remote server itself: this prevents GLINE's to become set during server handshake in this case (what wouldn't be possible during regular runtime when a remote IRC Op sends the command) and what can't be undone by IRC Ops later on (because of the missing "AllowRemoteOper" option) ...
This commit is contained in:
parent
995bbfd627
commit
f5ff22d98f
|
@ -398,7 +398,16 @@ IRC_xLINE(CLIENT *Client, REQUEST *Req)
|
||||||
return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG,
|
||||||
Client_ID(Client), Req->command);
|
Client_ID(Client), Req->command);
|
||||||
|
|
||||||
from = Op_Check(Client, Req);
|
if (!Conf_AllowRemoteOper && Client_Type(Client) == CLIENT_SERVER) {
|
||||||
|
/* Explicitely forbid remote servers to modify "x-lines" when
|
||||||
|
* the "AllowRemoteOper" configuration option isn't set, even
|
||||||
|
* when the command seems to originate from the remote server
|
||||||
|
* itself: this prevents GLINE's to become set during server
|
||||||
|
* handshake in this case (what wouldn't be possible during
|
||||||
|
* regular runtime when a remote IRC Op sends the command). */
|
||||||
|
from = NULL;
|
||||||
|
} else
|
||||||
|
from = Op_Check(Client, Req);
|
||||||
if (!from)
|
if (!from)
|
||||||
return Op_NoPrivileges(Client, Req);
|
return Op_NoPrivileges(Client, Req);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue