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 ++ ); |