channel = silc_idlist_find_channel_by_id(server->local_list,
channel_id, NULL);
if (!channel) {
- silc_free(channel_id);
- goto out;
+ channel = silc_idlist_find_channel_by_id(server->global_list,
+ channel_id, NULL);
+ if (!channel) {
+ silc_free(channel_id);
+ goto out;
+ }
}
/* Get client ID */
silc_id_create_client_id(server->id, server->rng, server->md5hash,
username, &client_id);
+ if (strlen(username) > 128)
+ username[127] = '\0';
+
/* Update client entry */
idata->registered = TRUE;
client->nickname = strdup(username);