From d53806603133b8b5714ce81ad691541a39963c2e Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Wed, 6 Nov 2002 13:42:26 +0000 Subject: [PATCH] Added some asserts and error checks. --- lib/silcclient/client.c | 3 +++ lib/silcclient/client_channel.c | 13 ++++++++++++- lib/silcclient/client_prvmsg.c | 19 ++++++++++++++----- lib/silcclient/command.c | 6 ++++++ lib/silcclient/idlist.c | 32 ++++++++++++++++++++++++++++++++ 5 files changed, 67 insertions(+), 6 deletions(-) diff --git a/lib/silcclient/client.c b/lib/silcclient/client.c index d6894575..aa729e6f 100644 --- a/lib/silcclient/client.c +++ b/lib/silcclient/client.c @@ -104,6 +104,7 @@ int silc_client_init(SilcClient client) { SILC_LOG_DEBUG(("Initializing client")); + assert(client); assert(client->username); assert(client->hostname); assert(client->realname); @@ -167,6 +168,7 @@ void silc_client_run(SilcClient client) { SILC_LOG_DEBUG(("Running client")); + assert(client); assert(client->pkcs); assert(client->public_key); assert(client->private_key); @@ -1962,6 +1964,7 @@ silc_client_request_authentication_method(SilcClient client, SilcClientConnAuthRequest connauth; SilcBuffer packet; + assert(client && conn); connauth = silc_calloc(1, sizeof(*connauth)); connauth->callback = callback; connauth->context = context; diff --git a/lib/silcclient/client_channel.c b/lib/silcclient/client_channel.c index c678ab58..d4aac686 100644 --- a/lib/silcclient/client_channel.c +++ b/lib/silcclient/client_channel.c @@ -43,7 +43,7 @@ void silc_client_send_channel_message(SilcClient client, int force_send) { int i; - SilcSocketConnection sock = conn->sock; + SilcSocketConnection sock; SilcBuffer payload; SilcPacketContext packetdata; const SilcBufferStruct packet; @@ -54,6 +54,8 @@ void silc_client_send_channel_message(SilcClient client, int block_len; SilcChannelUser chu; + assert(client && conn && channel); + sock = conn->sock; SILC_LOG_DEBUG(("Sending packet to channel")); chu = silc_client_on_channel(channel, conn->local_entry); @@ -495,6 +497,8 @@ int silc_client_add_channel_private_key(SilcClient client, unsigned char hash[32]; SilcSKEKeyMaterial *keymat; + assert(client && channel); + if (!(channel->mode & SILC_CHANNEL_MODE_PRIVKEY)) return FALSE; @@ -573,6 +577,8 @@ int silc_client_del_channel_private_keys(SilcClient client, { SilcChannelPrivateKey entry; + assert(client && channel); + if (!channel->private_keys) return FALSE; @@ -608,6 +614,8 @@ int silc_client_del_channel_private_key(SilcClient client, { SilcChannelPrivateKey entry; + assert(client && channel); + if (!channel->private_keys) return FALSE; @@ -652,6 +660,8 @@ silc_client_list_channel_private_keys(SilcClient client, SilcChannelPrivateKey *keys = NULL, entry; SilcUInt32 count = 0; + assert(client && channel); + if (!channel->private_keys) return NULL; @@ -685,6 +695,7 @@ void silc_client_current_channel_private_key(SilcClient client, SilcChannelEntry channel, SilcChannelPrivateKey key) { + assert(client && channel); channel->curr_key = key; } diff --git a/lib/silcclient/client_prvmsg.c b/lib/silcclient/client_prvmsg.c index 4a4fc6b4..dc7b14d4 100644 --- a/lib/silcclient/client_prvmsg.c +++ b/lib/silcclient/client_prvmsg.c @@ -41,7 +41,7 @@ void silc_client_send_private_message(SilcClient client, SilcUInt32 data_len, int force_send) { - SilcSocketConnection sock = conn->sock; + SilcSocketConnection sock; SilcBuffer buffer; SilcPacketContext packetdata; const SilcBufferStruct packet; @@ -49,6 +49,8 @@ void silc_client_send_private_message(SilcClient client, SilcHmac hmac; int block_len; + assert(client && conn && client_entry); + sock = conn->sock; SILC_LOG_DEBUG(("Sending private message")); /* Encode private message payload */ @@ -329,7 +331,7 @@ int silc_client_add_private_message_key(SilcClient client, int i; SilcSKEKeyMaterial *keymat; - assert(client_entry); + assert(client && client_entry); /* Return FALSE if key already set */ if (client_entry->send_key && client_entry->receive_key) @@ -402,7 +404,7 @@ int silc_client_add_private_message_key_ske(SilcClient client, SilcSKEKeyMaterial *key, bool responder) { - assert(client_entry); + assert(client && client_entry); /* Return FALSE if key already set */ if (client_entry->send_key && client_entry->receive_key) @@ -454,11 +456,14 @@ int silc_client_send_private_message_key(SilcClient client, SilcClientEntry client_entry, int force_send) { - SilcSocketConnection sock = conn->sock; + SilcSocketConnection sock; SilcBuffer buffer; int cipher_len; const char *cipher; + assert(client && conn && client_entry); + + sock = conn->sock; if (!client_entry->send_key || !client_entry->key) return FALSE; @@ -496,7 +501,7 @@ int silc_client_del_private_message_key(SilcClient client, SilcClientConnection conn, SilcClientEntry client_entry) { - assert(client_entry); + assert(client && client_entry); if (!client_entry->send_key && !client_entry->receive_key) return FALSE; @@ -535,6 +540,8 @@ silc_client_list_private_message_keys(SilcClient client, SilcIDCacheList list; SilcClientEntry entry; + assert(client && conn); + if (!silc_idcache_get_all(conn->internal->client_cache, &list)) return NULL; @@ -588,6 +595,8 @@ void silc_client_set_away_message(SilcClient client, SilcClientConnection conn, char *message) { + assert(client && conn); + if (!message && conn->internal->away) { silc_free(conn->internal->away->away); silc_free(conn->internal->away); diff --git a/lib/silcclient/command.c b/lib/silcclient/command.c index f1be2aab..f1a9ace6 100644 --- a/lib/silcclient/command.c +++ b/lib/silcclient/command.c @@ -48,6 +48,8 @@ void silc_client_command_send(SilcClient client, SilcClientConnection conn, SilcBuffer packet; va_list ap; + assert(client && conn); + va_start(ap, argc); packet = silc_command_payload_encode_vap(command, ident, argc, ap); @@ -65,6 +67,8 @@ SilcClientCommand silc_client_command_find(SilcClient client, { SilcClientCommand cmd; + assert(client); + silc_list_start(client->internal->commands); while ((cmd = silc_list_get(client->internal->commands)) != SILC_LIST_END) { if (cmd->name && !strcmp(cmd->name, name)) @@ -83,6 +87,7 @@ SilcClientCommand silc_client_command_find(SilcClient client, void silc_client_command_call(SilcClientCommand command, SilcClientCommandContext cmd) { + assert(command); (*command->command)((void *)cmd, NULL); } @@ -103,6 +108,7 @@ void silc_client_command_pending(SilcClientConnection conn, { SilcClientCommandPending *reply; + assert(conn); reply = silc_calloc(1, sizeof(*reply)); reply->reply_cmd = reply_cmd; reply->ident = ident; diff --git a/lib/silcclient/idlist.c b/lib/silcclient/idlist.c index 2e4c3707..cd48b287 100644 --- a/lib/silcclient/idlist.c +++ b/lib/silcclient/idlist.c @@ -49,6 +49,10 @@ SilcClientEntry *silc_client_get_clients_local(SilcClient client, int i = 0; bool found = FALSE; + assert(client && conn); + if (!nickname) + return NULL; + /* Find ID from cache */ if (!silc_idcache_find_by_name(conn->internal->client_cache, (char *)nickname, &list)) @@ -162,6 +166,8 @@ void silc_client_get_clients(SilcClient client, int len; char *userhost; + assert(client && conn); + if (!nickname) return; @@ -375,6 +381,8 @@ void silc_client_get_clients_by_list(SilcClient client, GetClientsByListInternal in; bool wait_res = FALSE; + assert(client && conn && client_id_list); + SILC_LOG_DEBUG(("Start")); in = silc_calloc(1, sizeof(*in)); @@ -500,6 +508,10 @@ SilcClientEntry silc_client_get_client_by_id(SilcClient client, { SilcIDCacheEntry id_cache; + assert(client && conn); + if (!client_id) + return NULL; + SILC_LOG_DEBUG(("Finding client by ID (%s)", silc_id_render(client_id, SILC_ID_CLIENT))); @@ -556,6 +568,8 @@ void silc_client_get_client_by_id_resolve(SilcClient client, SilcBuffer idp; GetClientByIDInternal i = silc_calloc(1, sizeof(*i)); + assert(client && conn && client_id); + SILC_LOG_DEBUG(("Start")); i->client = client; @@ -838,6 +852,10 @@ SilcChannelEntry silc_client_get_channel(SilcClient client, SilcIDCacheEntry id_cache; SilcChannelEntry entry; + assert(client && conn); + if (!channel) + return NULL; + SILC_LOG_DEBUG(("Start")); if (!silc_idcache_find_by_name_one(conn->internal->channel_cache, channel, @@ -862,6 +880,10 @@ SilcChannelEntry silc_client_get_channel_by_id(SilcClient client, SilcIDCacheEntry id_cache; SilcChannelEntry entry; + assert(client && conn); + if (!channel_id) + return NULL; + SILC_LOG_DEBUG(("Start")); if (!silc_idcache_find_by_id_one(conn->internal->channel_cache, channel_id, @@ -913,6 +935,8 @@ void silc_client_get_channel_by_id_resolve(SilcClient client, SilcBuffer idp; GetChannelByIDInternal i = silc_calloc(1, sizeof(*i)); + assert(client && conn && channel_id); + SILC_LOG_DEBUG(("Start")); i->client = client; @@ -948,6 +972,10 @@ SilcServerEntry silc_client_get_server(SilcClient client, SilcIDCacheEntry id_cache; SilcServerEntry entry; + assert(client && conn); + if (!server_name) + return NULL; + SILC_LOG_DEBUG(("Start")); if (!silc_idcache_find_by_name_one(conn->internal->server_cache, @@ -968,6 +996,10 @@ SilcServerEntry silc_client_get_server_by_id(SilcClient client, SilcIDCacheEntry id_cache; SilcServerEntry entry; + assert(client && conn); + if (!server_id) + return NULL; + SILC_LOG_DEBUG(("Start")); if (!silc_idcache_find_by_id_one(conn->internal->server_cache, -- 2.24.0