From: Pekka Riikonen Date: Wed, 16 May 2007 07:24:04 +0000 (+0000) Subject: Fixed nickname format parsing in JOIN notify and WHOIS reply. X-Git-Tag: silc.toolkit.1.1.beta3~8 X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=commitdiff_plain;h=5af90381867ebc87585b345d628b5319544c7c35 Fixed nickname format parsing in JOIN notify and WHOIS reply. --- diff --git a/CHANGES b/CHANGES index d4e6c9e1..d68f8cfa 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,9 @@ +Wed May 16 10:21:45 EEST 2007 Pekka Riikonen + + * Fixed nickname format parsing in JOIN notify handling and + in WHOIS command reply. Affected file is + apps/irssi/src/silc/core/client_ops.c. + Wed May 16 09:34:10 EEST 2007 Pekka Riikonen * SILC Client 1.1 Beta4. diff --git a/apps/irssi/src/silc/core/client_ops.c b/apps/irssi/src/silc/core/client_ops.c index d8bb1f01..58188fea 100644 --- a/apps/irssi/src/silc/core/client_ops.c +++ b/apps/irssi/src/silc/core/client_ops.c @@ -770,12 +770,13 @@ void silc_notify(SilcClient client, SilcClientConnection conn, /* If there are multiple same nicknames on channel now, tell it to user. */ if (client_entry != server->conn->local_entry) { - char nick[128 + 1], tmp[32]; + char *nick, tmp[32]; int count = 0; - silc_parse_userfqdn(client_entry->nickname, nick, sizeof(nick), NULL, 0); + silc_client_nickname_parse(client, conn, client_entry->nickname, &nick); clients = silc_client_get_clients_local(client, conn, nick, TRUE); if (!clients || silc_dlist_count(clients) < 2) { + silc_free(nick); silc_client_list_free(client, conn, clients); break; } @@ -793,6 +794,7 @@ void silc_notify(SilcClient client, SilcClientConnection conn, buf, client_entry->nickname); } silc_client_list_free(client, conn, clients); + silc_free(nick); } break; @@ -1507,7 +1509,7 @@ void silc_command_reply(SilcClient client, SilcClientConnection conn, switch(command) { case SILC_COMMAND_WHOIS: { - char buf[1024], *nickname, *username, *realname, nick[128 + 1]; + char buf[1024], *nickname, *username, *realname, *nick; unsigned char *fingerprint; SilcUInt32 idle, mode, *user_modes; SilcDList channels; @@ -1548,13 +1550,14 @@ void silc_command_reply(SilcClient client, SilcClientConnection conn, user_modes = va_arg(vp, SilcUInt32 *); attrs = va_arg(vp, SilcDList); - silc_parse_userfqdn(nickname, nick, sizeof(nick), NULL, 0); + silc_client_nickname_parse(client, conn, client_entry->nickname, &nick); printformat_module("fe-common/silc", server, NULL, MSGLEVEL_CRAP, SILCTXT_WHOIS_USERINFO, nickname, client_entry->username, client_entry->hostname, nick, client_entry->nickname); printformat_module("fe-common/silc", server, NULL, MSGLEVEL_CRAP, SILCTXT_WHOIS_REALNAME, realname); + silc_free(nick); if (channels && user_modes) { SilcChannelPayload entry;