X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Fsilcd%2Fcommand.c;h=807faee2cf8743ed787d06a14f15ee52bc19eb36;hb=386c883d8774999c6e74d7c6c37e52e4163a4cb1;hp=5221c09efd9079f105257f52ae8408e272366703;hpb=f5655eda8412bc7b03b6162cad01ad612719ad4a;p=silc.git diff --git a/apps/silcd/command.c b/apps/silcd/command.c index 5221c09e..807faee2 100644 --- a/apps/silcd/command.c +++ b/apps/silcd/command.c @@ -2165,7 +2165,7 @@ silc_server_command_list_send_reply(SilcServerCommandContext cmd, memset(usercount, 0, sizeof(usercount)); } else { topic = entry->topic; - users = silc_hash_table_count(entry->user_list); + users = entry->user_count; SILC_PUT32_MSB(users, usercount); } @@ -3141,10 +3141,8 @@ static void silc_server_command_join_channel(SilcServer server, if (channel->mode & SILC_CHANNEL_MODE_PASSPHRASE) { /* Get passphrase */ tmp = silc_argument_get_arg_type(cmd->args, 3, &tmp_len); - if (tmp) { - passphrase = silc_calloc(tmp_len, sizeof(*passphrase)); - memcpy(passphrase, tmp, tmp_len); - } + if (tmp) + passphrase = silc_memdup(tmp, tmp_len); if (!passphrase || !channel->passphrase || memcmp(passphrase, channel->passphrase, strlen(channel->passphrase))) { @@ -3187,6 +3185,7 @@ static void silc_server_command_join_channel(SilcServer server, chl->channel = channel; silc_hash_table_add(channel->user_list, client, chl); silc_hash_table_add(client->channels, channel, chl); + channel->user_count++; /* Get users on the channel */ silc_server_get_users_on_channel(server, channel, &user_list, &mode_list, @@ -4108,9 +4107,7 @@ SILC_SERVER_CMD_FUNC(cmode) if (channel->founder_method == SILC_AUTH_PASSWORD) { tmp = silc_auth_get_data(auth, &tmp_len); - channel->founder_passwd = - silc_calloc(tmp_len + 1, sizeof(*channel->founder_passwd)); - memcpy(channel->founder_passwd, tmp, tmp_len); + channel->founder_passwd = silc_memdup(tmp, tmp_len); channel->founder_passwd_len = tmp_len; } else { /* Verify the payload before setting the mode */