Fixed channel key setting.
[silc.git] / lib / silcclient / client_entry.c
index e3f2eafa2fd1601f65beaeecfeafa8d8e0dfb79b..0f04e08401438cff0a70169910534725879f4128 100644 (file)
@@ -423,6 +423,7 @@ SilcUInt16 silc_client_get_clients_by_list(SilcClient client,
   SilcUInt32 *res_argv_lens = NULL, *res_argv_types = NULL, res_argc = 0;
   SilcUInt16 idp_len, cmd_ident;
   SilcID id;
+  va_list tmp;
   int i;
 
   SILC_LOG_DEBUG(("Resolve clients from Client ID list"));
@@ -490,7 +491,7 @@ SilcUInt16 silc_client_get_clients_by_list(SilcClient client,
 
   /* We have the clients in cache, get them and call the completion */
   silc_client_get_clients_list_cb(client, conn, SILC_COMMAND_WHOIS,
-                                 SILC_STATUS_OK, SILC_STATUS_OK, in, NULL);
+                                 SILC_STATUS_OK, SILC_STATUS_OK, in, tmp);
   return 0;
 
  err:
@@ -1086,7 +1087,7 @@ SilcClientEntry silc_client_nickname_format(SilcClient client,
        }
 
        memset(tmp, 0, sizeof(tmp));
-       snprintf(tmp, sizeof(tmp) - 1, "%d", ++max);
+       silc_snprintf(tmp, sizeof(tmp) - 1, "%d", ++max);
        len = strlen(tmp);
        memcpy(&newnick[off], tmp, len);
        off += len;
@@ -1492,8 +1493,10 @@ SilcBool silc_client_del_channel(SilcClient client, SilcClientConnection conn,
   silc_free(channel->topic);
   if (channel->founder_key)
     silc_pkcs_public_key_free(channel->founder_key);
-  if (channel->internal.channel_key)
-    silc_cipher_free(channel->internal.channel_key);
+  if (channel->internal.send_key)
+    silc_cipher_free(channel->internal.send_key);
+  if (channel->internal.receive_key)
+    silc_cipher_free(channel->internal.receive_key);
   if (channel->internal.hmac)
     silc_hmac_free(channel->internal.hmac);
   if (channel->internal.old_channel_keys) {