From: Pekka Riikonen Date: Sat, 3 Nov 2007 21:25:26 +0000 (+0000) Subject: Fixed channel private key freeing. X-Git-Tag: silc.server.1.1.beta.2~6 X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=commitdiff_plain;h=3e3bc45c22112f7bc1eed76fcd6374a02a5abfdc Fixed channel private key freeing. --- diff --git a/CHANGES b/CHANGES index dd595ce1..fb572dc9 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,8 @@ +Sun Sep 30 15:16:18 EEST 2007 Pekka Riikonen + + * Fixed channel private key deleting when deleting the channel. + Affected file is lib/silcclient/client_channel.c. + Sun Sep 9 17:52:49 EEST 2007 Pekka Riikonen * SILC Toolkit 1.1.3. diff --git a/lib/silcclient/client_entry.c b/lib/silcclient/client_entry.c index 488acfd3..0933c3d4 100644 --- a/lib/silcclient/client_entry.c +++ b/lib/silcclient/client_entry.c @@ -1722,6 +1722,7 @@ SilcBool silc_client_del_channel(SilcClient client, SilcClientConnection conn, return FALSE; silc_client_empty_channel(client, conn, channel); + silc_client_del_channel_private_keys(client, conn, channel); silc_hash_table_free(channel->user_list); silc_free(channel->channel_name); silc_free(channel->topic); @@ -1748,7 +1749,6 @@ SilcBool silc_client_del_channel(SilcClient client, SilcClientConnection conn, if (channel->channel_pubkeys) silc_argument_list_free(channel->channel_pubkeys, SILC_ARGUMENT_PUBLIC_KEY); - silc_client_del_channel_private_keys(client, conn, channel); silc_atomic_uninit16(&channel->internal.refcnt); silc_rwlock_free(channel->internal.lock); silc_schedule_task_del_by_context(conn->client->schedule, channel); diff --git a/lib/silcclient/client_keyagr.c b/lib/silcclient/client_keyagr.c index 221bd8a3..6a93b061 100644 --- a/lib/silcclient/client_keyagr.c +++ b/lib/silcclient/client_keyagr.c @@ -60,6 +60,9 @@ SILC_TASK_CALLBACK(silc_client_keyagr_timeout) SilcClientEntry client_entry = context; SilcClientKeyAgreement ke = client_entry->internal.ke; + if (!ke) + return; + SILC_LOG_DEBUG(("Key agreement %p timeout", ke)); ke->completion(ke->client, ke->conn, client_entry,