Commit Diff


commit - 5d921984873b708c2f91bed01689f6351d95c233
commit + 3e47bc9af511716bbe388f0a29b5fdbb617cee4c
blob - 63c4813a361e6b464f6b3ae7699c7af70170403f
blob + a678f9048e68d0c27b43d55533e333621d730543
--- src/ngircd/irc.c
+++ src/ngircd/irc.c
@@ -81,6 +81,17 @@ IRC_ERROR( CLIENT *Client, REQUEST *Req )
 	assert( Client != NULL );
 	assert( Req != NULL );
 
+	if (Client_Type(Client) != CLIENT_GOTPASS
+	    && Client_Type(Client) != CLIENT_GOTPASS_2813
+	    && Client_Type(Client) != CLIENT_UNKNOWNSERVER
+	    && Client_Type(Client) != CLIENT_SERVER
+	    && Client_Type(Client) != CLIENT_SERVICE) {
+		LogDebug("Ignored ERROR command from \"%s\" ...",
+			 Client_Mask(Client));
+		IRC_SetPenalty(Client, 2);
+		return CONNECTED;
+	}
+
 	if (Req->argc < 1)
 		Log(LOG_NOTICE, "Got ERROR from \"%s\"!",
 		    Client_Mask(Client));