Merge commit 'origin/silc.1.1.branch'
[silc.git] / lib / silcclient / client_channel.c
index 4fcfb08c214c2667785f1767f8a372c045254f25..7dd4f0a6ad59a23572262fb48970de4decda3616 100644 (file)
@@ -68,8 +68,11 @@ SilcBool silc_client_send_channel_message(SilcClient client,
 
   if (silc_unlikely(!client || !conn || !channel))
     return FALSE;
-  if (silc_unlikely(flags & SILC_MESSAGE_FLAG_SIGNED && !hash))
+  if (silc_unlikely(flags & SILC_MESSAGE_FLAG_SIGNED && !hash)) {
+    SILC_LOG_ERROR(("Cannot send signed message without hash, missing "
+                   "arguments"));
     return FALSE;
+  }
   if (silc_unlikely(conn->internal->disconnected))
     return FALSE;
 
@@ -647,8 +650,14 @@ SilcBool silc_client_del_channel_private_keys(SilcClient client,
   }
 
   channel->internal.curr_key = NULL;
-  channel->cipher = silc_cipher_get_name(channel->internal.send_key);
-  channel->hmac = silc_hmac_get_name(channel->internal.hmac);
+  if (channel->internal.send_key)
+    channel->cipher = silc_cipher_get_name(channel->internal.send_key);
+  else
+    channel->cipher = NULL;
+  if (channel->internal.hmac)
+    channel->hmac = silc_hmac_get_name(channel->internal.hmac);
+  else
+    channel->hmac = NULL;
 
   silc_dlist_uninit(channel->internal.private_keys);
   channel->internal.private_keys = NULL;