summaryrefslogtreecommitdiffstats
path: root/src/methods/generic_gcm/generic_gcm.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/methods/generic_gcm/generic_gcm.c')
-rw-r--r--src/methods/generic_gcm/generic_gcm.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/methods/generic_gcm/generic_gcm.c b/src/methods/generic_gcm/generic_gcm.c
index 9ce8522..9481100 100644
--- a/src/methods/generic_gcm/generic_gcm.c
+++ b/src/methods/generic_gcm/generic_gcm.c
@@ -113,7 +113,11 @@ static fastd_method_session_state_t* method_session_init(fastd_context_t *ctx, c
uint8_t zeroiv[session->cipher_info->iv_length];
memset(zeroiv, 0, session->cipher_info->iv_length);
- session->cipher->crypt(ctx, session->cipher_state, &H, &zeroblock, sizeof(fastd_block128_t), zeroiv);
+ if (!session->cipher->crypt(ctx, session->cipher_state, &H, &zeroblock, sizeof(fastd_block128_t), zeroiv)) {
+ session->cipher->free_state(ctx, session->cipher_state);
+ free(session);
+ return NULL;
+ }
session->ghash = fastd_mac_get_by_name(ctx, "ghash", &session->ghash_info, &session->ghash_ctx);
if (!session->ghash)