Fixes to connection freeing crashes
[runtime.git] / apps / silcd / server_util.c
index 1e8e79fe129dfc61834394b9b1c93acf7bdbe891..14a1a240c9bfa62fbdeabf70dfbf66500ce332b0 100644 (file)
@@ -1543,7 +1543,7 @@ void silc_server_kill_client(SilcServer server,
   if (remote_client->connection) {
     /* Remove locally conneted client */
     SilcPacketStream sock = remote_client->connection;
-    silc_server_free_client_data(server, sock, remote_client, FALSE, NULL);
+    silc_server_free_sock_user_data(server, sock, NULL);
     silc_server_close_connection(server, sock);
   } else {
     /* Update statistics */
@@ -2107,6 +2107,8 @@ SilcBuffer silc_server_get_channel_pk_list(SilcServer server,
   silc_hash_table_list(channel->channel_pubkeys, &htl);
   while (silc_hash_table_get(&htl, NULL, (void *)&pk)) {
     pkp = silc_public_key_payload_encode(pk);
+    if (!pkp)
+      continue;
     list = silc_argument_payload_encode_one(list, pkp->data,
                                            silc_buffer_len(pkp),
                                            announce ? 0x03 :