diff options
| author | Wilmer van der Gaast <wilmer@gaast.net> | 2008-12-14 01:38:59 +0000 | 
|---|---|---|
| committer | Wilmer van der Gaast <wilmer@gaast.net> | 2008-12-14 01:38:59 +0000 | 
| commit | e1720ce8958ae014ce38d03b7b9ab129d947921b (patch) | |
| tree | 94a8989b4d63004246fe2b39db4e8dbe765d756a | |
| parent | 6d5eb723d73cabcda196189d70bbebc2761eacc3 (diff) | |
Fixed a bug in the IRC parser where lines that start with a colon and don't
contain any spaces could make BitlBee read uninitialized memory (and
possibly even parse it as if it were a command).
Also fixed a small memory leak around there.
| -rw-r--r-- | irc.c | 6 | 
1 files changed, 2 insertions, 4 deletions
| @@ -406,10 +406,8 @@ void irc_process( irc_t *irc )  				lines[i] = conv;  			} -			if( lines[i] ) +			if( lines[i] && ( cmd = irc_parse_line( lines[i] ) ) )  			{ -				if( ( cmd = irc_parse_line( lines[i] ) ) == NULL ) -					continue;  				irc_exec( irc, cmd );  				g_free( cmd );  			} @@ -484,7 +482,7 @@ char **irc_parse_line( char *line )  	/* Move the line pointer to the start of the command, skipping spaces and the optional prefix. */  	if( line[0] == ':' )  	{ -		for( i = 0; line[i] != ' '; i ++ ); +		for( i = 0; line[i] && line[i] != ' '; i ++ );  		line = line + i;  	}  	for( i = 0; line[i] == ' '; i ++ ); | 
