1
0
mirror of https://github.com/osmarks/ngircd.git synced 2024-10-27 20:36:18 +00:00

IRC_SERVER: Make sure that the client sent a prefix

The SERVER command is only valid with a prefix when received from other
servers, so make sure that there is one and disconnect the peer if not
(instead of crashing ...).

This obsoletes PR #275.

Thanks Hilko Bengen (hillu) for finding & reporting this as well for the
patch & pull request! But I think this is the "more correct" fix.
This commit is contained in:
Alexander Barton 2020-05-25 23:43:29 +02:00
parent 430bb22376
commit 02cf31c0e2

View File

@ -186,6 +186,15 @@ IRC_SERVER( CLIENT *Client, REQUEST *Req )
if (!Client_CheckID(Client, Req->argv[0]))
return DISCONNECTED;
if (!Req->prefix) {
/* We definitely need a prefix here! */
Log(LOG_ALERT, "Got SERVER command without prefix! (on connection %d)",
Client_Conn(Client));
Conn_Close(Client_Conn(Client), NULL,
"SERVER command without prefix", true);
return DISCONNECTED;
}
from = Client_Search( Req->prefix );
if (! from) {
/* Uh, Server, that introduced the new server is unknown?! */