Fix memleak with repeated [gc]cm_setkey()
diff --git a/library/ccm.c b/library/ccm.c
index 87f1886..e397e0a 100644
--- a/library/ccm.c
+++ b/library/ccm.c
@@ -78,6 +78,8 @@
if( cipher_info->block_size != 16 )
return( POLARSSL_ERR_CCM_BAD_INPUT );
+ cipher_free( &ctx->cipher_ctx );
+
if( ( ret = cipher_init_ctx( &ctx->cipher_ctx, cipher_info ) ) != 0 )
return( ret );
diff --git a/library/gcm.c b/library/gcm.c
index f4f735b..b537b02 100644
--- a/library/gcm.c
+++ b/library/gcm.c
@@ -168,6 +168,8 @@
if( cipher_info->block_size != 16 )
return( POLARSSL_ERR_GCM_BAD_INPUT );
+ cipher_free( &ctx->cipher_ctx );
+
if( ( ret = cipher_init_ctx( &ctx->cipher_ctx, cipher_info ) ) != 0 )
return( ret );