If key pair loading fails return NULL to return pointer.
authorPekka Riikonen <priikone@silcnet.org>
Fri, 1 Jun 2007 21:56:21 +0000 (21:56 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Fri, 1 Jun 2007 21:56:21 +0000 (21:56 +0000)
lib/silcapputil/silcapputil.c
lib/silccrypt/silcpkcs.c

index 67df01eb161720ed6f9075659c8d4f8c43b1acd1..6ecdd14352aebcd65b9a831c8d7183356eb49525 100644 (file)
@@ -265,6 +265,8 @@ SilcBool silc_load_key_pair(const char *pub_filename,
   if (!silc_pkcs_load_private_key(prv_filename,
                                  (const unsigned char *)pass, strlen(pass),
                                  return_private_key)) {
+    silc_pkcs_public_key_free(*return_public_key);
+    *return_public_key = NULL;
     memset(pass, 0, strlen(pass));
     silc_free(pass);
     return FALSE;
index 55c4c8084e08054cb8863d5a957c716900c38ec7..74fd6f03ab8b5a3ed35d106a288ec8853d05e7b9 100644 (file)
@@ -693,6 +693,7 @@ SilcBool silc_pkcs_load_public_key(const char *filename,
 
   silc_free(data);
   silc_free(public_key);
+  *ret_public_key = NULL;
   return FALSE;
 }
 
@@ -778,6 +779,7 @@ SilcBool silc_pkcs_load_private_key(const char *filename,
 
   silc_free(data);
   silc_free(private_key);
+  *ret_private_key = NULL;
   return FALSE;
 }