Merge pull request #3815 from AndrzejKurek/cipher-optim-mem-fix

ssl_tls.c: Fix unchecked memory allocation
diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index eb212d2..24dbb7d 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -1728,6 +1728,11 @@
     transform->key_enc = mbedtls_calloc( 1, cipher_info->key_bitlen >> 3 );
     transform->key_dec = mbedtls_calloc( 1, cipher_info->key_bitlen >> 3 );
 
+    if( transform->key_enc == NULL || transform->key_dec == NULL )
+    {
+        MBEDTLS_SSL_DEBUG_MSG( 1, ( "Failed to allocate cipher keys" ) );
+        return( MBEDTLS_ERR_SSL_INTERNAL_ERROR );
+    }
     memcpy( transform->key_enc, key1, cipher_info->key_bitlen >> 3 );
     memcpy( transform->key_dec, key2, cipher_info->key_bitlen >> 3 );