diff options
author | Wilmer van der Gaast <wilmer@gaast.net> | 2010-03-14 20:19:10 +0000 |
---|---|---|
committer | Wilmer van der Gaast <wilmer@gaast.net> | 2010-03-14 20:19:10 +0000 |
commit | 21d48d977b35d35d0ad86b3ccd051dae0d1fe055 (patch) | |
tree | 35a6eb0855b18c692d1badbf3fd0b146e3567be0 | |
parent | 90cd6c4780c7e42a0b7caff5d3a2ba1e0bd3f308 (diff) |
Fix for bug #536: No longer fail on corrupted USR responses with certain
Unicode characters in the friendly name.
-rw-r--r-- | protocols/msn/ns.c | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/protocols/msn/ns.c b/protocols/msn/ns.c index d05d8e0d..d78d753a 100644 --- a/protocols/msn/ns.c +++ b/protocols/msn/ns.c @@ -228,19 +228,26 @@ static int msn_ns_command( gpointer data, char **cmd, int num_parts ) return( 0 ); } } - else if( num_parts == 7 && strcmp( cmd[2], "OK" ) == 0 ) + else if( num_parts >= 7 && strcmp( cmd[2], "OK" ) == 0 ) { set_t *s; - http_decode( cmd[4] ); - - strncpy( ic->displayname, cmd[4], sizeof( ic->displayname ) ); - ic->displayname[sizeof(ic->displayname)-1] = 0; - - if( ( s = set_find( &ic->acc->set, "display_name" ) ) ) + if( num_parts == 7 ) { - g_free( s->value ); - s->value = g_strdup( cmd[4] ); + http_decode( cmd[4] ); + + strncpy( ic->displayname, cmd[4], sizeof( ic->displayname ) ); + ic->displayname[sizeof(ic->displayname)-1] = 0; + + if( ( s = set_find( &ic->acc->set, "display_name" ) ) ) + { + g_free( s->value ); + s->value = g_strdup( cmd[4] ); + } + } + else + { + imcb_log( ic, "Warning: Friendly name in server response was corrupted" ); } imcb_log( ic, "Authenticated, getting buddy list" ); |