diff options
Diffstat (limited to 'irc_commands.c')
| -rw-r--r-- | irc_commands.c | 7 | 
1 files changed, 5 insertions, 2 deletions
| diff --git a/irc_commands.c b/irc_commands.c index e4dc4f3e..9e47b83b 100644 --- a/irc_commands.c +++ b/irc_commands.c @@ -578,7 +578,7 @@ static const command_t irc_commands[] = {  void irc_exec( irc_t *irc, char *cmd[] )  {	 -	int i; +	int i, n_arg;  	if( !cmd[0] )  		return; @@ -586,6 +586,9 @@ void irc_exec( irc_t *irc, char *cmd[] )  	for( i = 0; irc_commands[i].command; i++ )  		if( g_strcasecmp( irc_commands[i].command, cmd[0] ) == 0 )  		{ +			/* There should be no typo in the next line: */ +			for( n_arg = 0; cmd[n_arg]; n_arg ++ ); n_arg --; +			  			if( irc_commands[i].flags & IRC_CMD_PRE_LOGIN && irc->status >= USTATUS_LOGGED_IN )  			{  				irc_reply( irc, 462, ":Only allowed before logging in" ); @@ -598,7 +601,7 @@ void irc_exec( irc_t *irc, char *cmd[] )  			{  				irc_reply( irc, 481, ":Permission denied - You're not an IRC operator" );  			} -			else if( !cmd[irc_commands[i].required_parameters] ) +			else if( n_arg < irc_commands[i].required_parameters )  			{  				irc_reply( irc, 461, "%s :Need more parameters", cmd[0] );  			} | 
