Check for valid entry creations.
authorPekka Riikonen <priikone@silcnet.org>
Thu, 7 Apr 2005 14:12:01 +0000 (14:12 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Thu, 7 Apr 2005 14:12:01 +0000 (14:12 +0000)
lib/silcclient/command_reply.c

index ecf598c60ae48537a6d3105863d7be7c30f591b2..abc51d1d04d131d1b978f82ffbb4d279df29f8c8 100644 (file)
@@ -230,6 +230,11 @@ silc_client_command_reply_whois_save(SilcClientCommandReplyContext cmd,
     client_entry =
       silc_client_add_client(cmd->client, conn, nickname, username, realname,
                             client_id, mode);
+    if (!client_entry) {
+      if (notify)
+       COMMAND_REPLY_ERROR(SILC_STATUS_ERR_NOT_ENOUGH_PARAMS);
+      return;
+    }
   } else {
     silc_client_update_client(cmd->client, conn, client_entry,
                              nickname, username, realname, mode);
@@ -413,6 +418,11 @@ silc_client_command_reply_identify_save(SilcClientCommandReplyContext cmd,
       client_entry =
        silc_client_add_client(cmd->client, conn, name, info, NULL,
                               silc_id_dup(client_id, id_type), 0);
+      if (!client_entry) {
+       if (notify)
+         COMMAND_REPLY_ERROR(SILC_STATUS_ERR_NOT_ENOUGH_PARAMS);
+       return;
+      }
     } else {
       silc_client_update_client(cmd->client, conn, client_entry,
                                name, info, NULL, 0);
@@ -466,6 +476,11 @@ silc_client_command_reply_identify_save(SilcClientCommandReplyContext cmd,
       /* Add new channel entry */
       channel_entry = silc_client_add_channel(client, conn, name, 0,
                                              channel_id);
+      if (!channel_entry) {
+       if (notify)
+         COMMAND_REPLY_ERROR(SILC_STATUS_ERR_NOT_ENOUGH_PARAMS);
+       return;
+      }
       channel_id = NULL;
     }
 
@@ -1116,6 +1131,8 @@ SILC_CLIENT_CMD_REPLY_FUNC(join)
       client_entry =
        silc_client_add_client(cmd->client, conn, NULL, NULL, NULL,
                               silc_id_dup(client_id, SILC_ID_CLIENT), 0);
+      if (!client_entry)
+       goto out;
     }
 
     /* Join client to the channel */