diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function
index 487d3ce..c21b728 100644
--- a/tests/suites/test_suite_ssl.function
+++ b/tests/suites/test_suite_ssl.function
@@ -12,7 +12,9 @@
     do                                          \
     {                                           \
         if( !( x ) )                            \
-            return( 1 );                        \
+        {                                       \
+            goto cleanup;                       \
+        }                                       \
     } while( 0 )
 
 
@@ -24,7 +26,7 @@
     mbedtls_cipher_info_t const *cipher_info;
 
     size_t keylen, maclen, ivlen;
-    unsigned char *key0, *key1;
+    unsigned char *key0 = NULL, *key1 = NULL;
     unsigned char iv_enc[16], iv_dec[16];
 
     maclen = 0;
@@ -70,8 +72,6 @@
                                 keylen << 3, MBEDTLS_ENCRYPT ) == 0 );
     CHK( mbedtls_cipher_setkey( &t_out->cipher_ctx_dec, key0,
                                 keylen << 3, MBEDTLS_DECRYPT ) == 0 );
-    free( key0 );
-    free( key1 );
 
     /* Setup MAC contexts */
 #if defined(MBEDTLS_SSL_SOME_MODES_USE_MAC)
@@ -223,6 +223,11 @@
     memcpy( &t_out->iv_dec, iv_enc, sizeof( iv_enc ) );
     memcpy( &t_out->iv_enc, iv_dec, sizeof( iv_dec ) );
 
+cleanup:
+
+    free( key0 );
+    free( key1 );
+
     return( 0 );
 }
 
@@ -293,7 +298,7 @@
     mbedtls_ssl_context ssl; /* ONLY for debugging */
 
     mbedtls_ssl_transform t0, t1;
-    unsigned char *buf;
+    unsigned char *buf = NULL;
     size_t const buflen = 512;
     mbedtls_record rec, rec_backup;
 
@@ -373,6 +378,8 @@
                              rec.data_len ) == 0 );
     }
 
+exit:
+
     /* Cleanup */
     mbedtls_ssl_free( &ssl );
     mbedtls_ssl_transform_free( &t0 );
@@ -409,7 +416,7 @@
     mbedtls_ssl_context ssl; /* ONLY for debugging */
 
     mbedtls_ssl_transform t0, t1;
-    unsigned char *buf;
+    unsigned char *buf = NULL;
     size_t const buflen = 150;
     mbedtls_record rec, rec_backup;
 
@@ -519,6 +526,8 @@
         TEST_ASSERT( seen_success == 1 );
     }
 
+exit:
+
     /* Cleanup */
     mbedtls_ssl_free( &ssl );
     mbedtls_ssl_transform_free( &t0 );
