From 0a04504f0eee025f02a405ff951f4ff5dea80345 Mon Sep 17 00:00:00 2001
From: Doug Hogan <hogand@users.noreply.github.com>
Date: Mon, 7 Jan 2019 06:44:29 -0800
Subject: Revamp hmac_context_dtor()

Make it NULL safe.
---
 lib/crypto/c_src/hmac.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

(limited to 'lib')

diff --git a/lib/crypto/c_src/hmac.c b/lib/crypto/c_src/hmac.c
index 143cde90e1..6ddbd2c59a 100644
--- a/lib/crypto/c_src/hmac.c
+++ b/lib/crypto/c_src/hmac.c
@@ -84,11 +84,17 @@ ERL_NIF_TERM hmac_nif(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[])
 
 static void hmac_context_dtor(ErlNifEnv* env, struct hmac_context *obj)
 {
+    if (obj == NULL)
+        return;
+
     if (obj->alive) {
-	HMAC_CTX_free(obj->ctx);
+        if (obj->ctx)
+            HMAC_CTX_free(obj->ctx);
 	obj->alive = 0;
     }
-    enif_mutex_destroy(obj->mtx);
+
+    if (obj->mtx != NULL)
+        enif_mutex_destroy(obj->mtx);
 }
 
 ERL_NIF_TERM hmac_init_nif(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[])
-- 
cgit v1.2.3