From c01d1ab3840cf6b340f2704d036eccc6c8b03a9a Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Mon, 2 Jul 2007 13:31:56 +0000 Subject: [PATCH] Check for valid scheduler before trying to free it. --- lib/silcclient/client.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/silcclient/client.c b/lib/silcclient/client.c index d7942f5f..7811bfa1 100644 --- a/lib/silcclient/client.c +++ b/lib/silcclient/client.c @@ -947,7 +947,8 @@ SilcClient silc_client_alloc(SilcClientOperations *ops, void silc_client_free(SilcClient client) { - silc_schedule_uninit(client->schedule); + if (client->schedule) + silc_schedule_uninit(client->schedule); if (client->rng) silc_rng_free(client->rng); @@ -959,10 +960,13 @@ void silc_client_free(SilcClient client) silc_hmac_unregister_all(); } - silc_packet_engine_stop(client->internal->packet_engine); - silc_dlist_uninit(client->internal->ftp_sessions); + if (client->internal->packet_engine) + silc_packet_engine_stop(client->internal->packet_engine); + if (client->internal->ftp_sessions) + silc_dlist_uninit(client->internal->ftp_sessions); + if (client->internal->lock) + silc_mutex_free(client->internal->lock); silc_atomic_uninit16(&client->internal->conns); - silc_mutex_free(client->internal->lock); silc_free(client->username); silc_free(client->hostname); silc_free(client->realname); -- 2.24.0