commit bcb45da1b416e7ee4b50dcf16947fb9703f713cf from: Federico G. Schwindt date: Fri Sep 06 22:02:01 2013 UTC Add more penalty times Ensure before every numeric 461 there is a call to IRC_SetPenalty(). commit - 08f9d31d60220e8a389a2d24f42625be7749f090 commit + bcb45da1b416e7ee4b50dcf16947fb9703f713cf blob - ce042043ebe0b3eedc087635e50fc30a6b51610c blob + d5e7bdd1b474a1882c0cca04048a624c17032ac3 --- src/ngircd/irc-channel.c +++ src/ngircd/irc-channel.c @@ -323,9 +323,11 @@ IRC_JOIN( CLIENT *Client, REQUEST *Req ) channame = strtok_r(channame, ",", &lastchan); /* Make sure that "channame" is not the empty string ("JOIN :") */ - if (! channame) + if (!channame) { + IRC_SetPenalty(Client, 2); return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG, Client_ID(Client), Req->command); + } while (channame) { flags = NULL; @@ -445,9 +447,11 @@ IRC_PART(CLIENT * Client, REQUEST * Req) chan = strtok(Req->argv[0], ","); /* Make sure that "chan" is not the empty string ("PART :") */ - if (! chan) + if (!chan) { + IRC_SetPenalty(Client, 2); return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG, Client_ID(Client), Req->command); + } while (chan) { Channel_Part(target, Client, chan, @@ -662,9 +666,11 @@ IRC_CHANINFO( CLIENT *Client, REQUEST *Req ) assert( Req != NULL ); /* Bad number of parameters? */ - if (Req->argc < 2 || Req->argc == 4 || Req->argc > 5) + if (Req->argc < 2 || Req->argc == 4 || Req->argc > 5) { + IRC_SetPenalty(Client, 2); return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG, Client_ID(Client), Req->command); + } /* Compatibility kludge */ if (Req->argc == 5) blob - 88455c74d9e85c770442aea1aa6f0c54e2e0ab9c blob + 1c250a442bc8143dab65692fba4a4f26ce913d8c --- src/ngircd/irc-info.c +++ src/ngircd/irc-info.c @@ -1146,11 +1146,13 @@ IRC_WHO(CLIENT *Client, REQUEST *Req) if (strcmp(Req->argv[1], "o") == 0) only_ops = true; #ifdef STRICT_RFC - else + else { + IRC_SetPenalty(Client, 2); return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG, Client_ID(Client), Req->command); + } #endif } blob - 67a0fbfd803603befe536bc7e61e94eb06ced5a0 blob + 013481d2275029b664019126a6926d3e978dc222 --- src/ngircd/irc-login.c +++ src/ngircd/irc-login.c @@ -81,6 +81,7 @@ IRC_PASS( CLIENT *Client, REQUEST *Req ) } else if (Client_Type(Client) == CLIENT_UNKNOWN || Client_Type(Client) == CLIENT_UNKNOWNSERVER) { /* Unregistered connection, but wrong number of arguments: */ + IRC_SetPenalty(Client, 2); return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG, Client_ID(Client), Req->command); } else { @@ -270,9 +271,11 @@ IRC_NICK( CLIENT *Client, REQUEST *Req ) /* Server or service introduces new client */ /* Bad number of parameters? */ - if (Req->argc != 2 && Req->argc != 7) + if (Req->argc != 2 && Req->argc != 7) { + IRC_SetPenalty(Client, 2); return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG, Client_ID(Client), Req->command); + } if (Req->argc >= 7) { /* RFC 2813 compatible syntax */ blob - 38fec0d028b5761bcf2bd432a2633cae9871f7fc blob + e2fa59a2df67aa5f306629e0b3db9030a26d7c1d --- src/ngircd/irc-mode.c +++ src/ngircd/irc-mode.c @@ -622,6 +622,7 @@ Channel_Mode(CLIENT *Client, REQUEST *Req, CLIENT *Ori #ifdef STRICT_RFC /* Only send error message in "strict" mode, * this is how ircd2.11 and others behave ... */ + IRC_SetPenalty(Origin, 2); connected = IRC_WriteErrClient(Origin, ERR_NEEDMOREPARAMS_MSG, Client_ID(Origin), Req->command); @@ -666,6 +667,7 @@ Channel_Mode(CLIENT *Client, REQUEST *Req, CLIENT *Ori #ifdef STRICT_RFC /* Only send error message in "strict" mode, * this is how ircd2.11 and others behave ... */ + IRC_SetPenalty(Origin, 2); connected = IRC_WriteErrClient(Origin, ERR_NEEDMOREPARAMS_MSG, Client_ID(Origin), Req->command); @@ -767,6 +769,7 @@ Channel_Mode(CLIENT *Client, REQUEST *Req, CLIENT *Ori * mode, because most other servers don't do * it as well and some clients send "wired" * MODE commands like "MODE #chan -ooo nick". */ + IRC_SetPenalty(Origin, 2); connected = IRC_WriteErrClient(Origin, ERR_NEEDMOREPARAMS_MSG, Client_ID(Origin), Req->command); blob - 23db579e725e1e54ef01faf4bfdd10616843ac76 blob + 52126877dc1a6f27bc804b3a968499251d36e980 --- src/ngircd/irc-op.c +++ src/ngircd/irc-op.c @@ -122,6 +122,7 @@ IRC_KICK(CLIENT *Client, REQUEST *Req) nickCount--; } } else { + IRC_SetPenalty(Client, 2); return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG, Client_ID(Client), Req->command); } blob - 40633177a51babbe3d8971453f9b62818bec8a50 blob + 4d17085f4ac3ce7a264bfa900e940d17512f5c5c --- src/ngircd/irc-oper.c +++ src/ngircd/irc-oper.c @@ -208,14 +208,18 @@ IRC_CONNECT(CLIENT * Client, REQUEST * Req) /* Bad number of parameters? */ if (Req->argc != 1 && Req->argc != 2 && Req->argc != 3 && - Req->argc != 5 && Req->argc != 6) + Req->argc != 5 && Req->argc != 6) { + IRC_SetPenalty(Client, 2); return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG, Client_ID(Client), Req->command); + } /* Invalid port number? */ - if ((Req->argc > 1) && atoi(Req->argv[1]) < 1) + if ((Req->argc > 1) && atoi(Req->argv[1]) < 1) { + IRC_SetPenalty(Client, 2); return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG, Client_ID(Client), Req->command); + } if (Client_Type(Client) != CLIENT_SERVER && !Client_HasMode(Client, 'o')) @@ -391,9 +395,11 @@ IRC_xLINE(CLIENT *Client, REQUEST *Req) assert(Req != NULL); /* Bad number of parameters? */ - if (Req->argc != 1 && Req->argc != 3) + if (Req->argc != 1 && Req->argc != 3) { + IRC_SetPenalty(Client, 2); return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG, Client_ID(Client), Req->command); + } from = Op_Check(Client, Req); if (!from) blob - 80bb6a6141169fe0b03b18063496a2b9d0494800 blob + 030c3cd1fc043c00f3c99633eb1e33620b2be838 --- src/ngircd/irc-server.c +++ src/ngircd/irc-server.c @@ -72,10 +72,12 @@ IRC_SERVER( CLIENT *Client, REQUEST *Req ) LogDebug("Connection %d: got SERVER command (new server link) ...", Client_Conn(Client)); - if (Req->argc != 2 && Req->argc != 3) + if (Req->argc != 2 && Req->argc != 3) { + IRC_SetPenalty(Client, 2); return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG, Client_ID(Client), Req->command); + } /* Get configuration index of new remote server ... */ for (i = 0; i < MAX_SERVERS; i++) @@ -183,9 +185,11 @@ IRC_SERVER( CLIENT *Client, REQUEST *Req ) { /* New server is being introduced to the network */ - if (Req->argc != 4) + if (Req->argc != 4) { + IRC_SetPenalty(Client, 2); return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG, Client_ID(Client), Req->command); + } /* check for existing server with same ID */ if (!Client_CheckID(Client, Req->argv[0])) @@ -231,9 +235,11 @@ IRC_SERVER( CLIENT *Client, REQUEST *Req ) Client_MyToken(c), Client_Info(c)); return CONNECTED; - } else + } else { + IRC_SetPenalty(Client, 2); return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG, Client_ID(Client), Req->command); + } } /* IRC_SERVER */ /* blob - 7dafaf0539b005bdf808dcefb870838dfae8dfcc blob + d41439edaa61dbc941fcd12b05c2c29000831536 --- src/ngircd/irc.c +++ src/ngircd/irc.c @@ -510,6 +510,7 @@ Send_Message(CLIENT * Client, REQUEST * Req, int Force if (Req->argc > 2) { if (!SendErrors) return CONNECTED; + IRC_SetPenalty(Client, 2); return IRC_WriteErrClient(Client, ERR_NEEDMOREPARAMS_MSG, Client_ID(Client), Req->command); }