Fix key slot being used uninitialised on error

Signed-off-by: Paul Elliott <paul.elliott@arm.com>
diff --git a/library/psa_crypto.c b/library/psa_crypto.c
index fcc22e1..5d55e45 100644
--- a/library/psa_crypto.c
+++ b/library/psa_crypto.c
@@ -3240,7 +3240,7 @@
 {
     psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
     psa_status_t unlock_status = PSA_ERROR_CORRUPTION_DETECTED;
-    psa_key_slot_t *slot;
+    psa_key_slot_t *slot = NULL;
 
     if( !PSA_ALG_IS_AEAD( alg ) || PSA_ALG_IS_WILDCARD( alg ) )
     {
@@ -3282,10 +3282,13 @@
 
 exit:
 
-    unlock_status = psa_unlock_key_slot( slot );
+    if( slot )
+    {
+        unlock_status = psa_unlock_key_slot( slot );
 
-    if( unlock_status != PSA_SUCCESS )
-        status = unlock_status;
+        if( unlock_status != PSA_SUCCESS )
+            status = unlock_status;
+    }
 
     if( status == PSA_SUCCESS )
         operation->alg = psa_aead_get_base_algorithm( alg );
@@ -3302,7 +3305,7 @@
 {
     psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
     psa_status_t unlock_status = PSA_ERROR_CORRUPTION_DETECTED;
-    psa_key_slot_t *slot;
+    psa_key_slot_t *slot = NULL;
 
     if( !PSA_ALG_IS_AEAD( alg ) || PSA_ALG_IS_WILDCARD( alg ) )
     {
@@ -3344,10 +3347,13 @@
 
 exit:
 
-    unlock_status = psa_unlock_key_slot( slot );
+    if( slot )
+    {
+        unlock_status = psa_unlock_key_slot( slot );
 
-    if( unlock_status != PSA_SUCCESS )
-        status = unlock_status;
+        if( unlock_status != PSA_SUCCESS )
+            status = unlock_status;
+    }
 
     if( status == PSA_SUCCESS )
         operation->alg = psa_aead_get_base_algorithm( alg );