Fixed channel private key deleting to restore original keys correctly
authorPekka Riikonen <priikone@silcnet.org>
Sat, 30 Aug 2008 11:10:45 +0000 (14:10 +0300)
committerPekka Riikonen <priikone@silcnet.org>
Sat, 30 Aug 2008 11:10:45 +0000 (14:10 +0300)
lib/silcclient/client_channel.c

index 1d78d221b6f6c438ddb6980ef335ae5cf59b17b7..32dac873e13b7f97f0d1d7ca06a04f801f9c0e62 100644 (file)
@@ -626,8 +626,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->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;