aboutsummaryrefslogtreecommitdiffstats
path: root/lib/crypto/c_src/engine.c
diff options
context:
space:
mode:
authorDoug Hogan <[email protected]>2019-01-03 20:34:11 -0800
committerDoug Hogan <[email protected]>2019-01-08 01:11:57 -0800
commit03644ba9bcab05568870291ac5f4687c813688f5 (patch)
tree0f5ab07b1ab585e46c17d1f1d16eea17fe736b94 /lib/crypto/c_src/engine.c
parent448cda0d1668a643f8bddf7b0d1c1615e6d952b7 (diff)
downloadotp-03644ba9bcab05568870291ac5f4687c813688f5.tar.gz
otp-03644ba9bcab05568870291ac5f4687c813688f5.tar.bz2
otp-03644ba9bcab05568870291ac5f4687c813688f5.zip
Revamp get_key_password()
Diffstat (limited to 'lib/crypto/c_src/engine.c')
-rw-r--r--lib/crypto/c_src/engine.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/crypto/c_src/engine.c b/lib/crypto/c_src/engine.c
index 95966508ec..56029638d4 100644
--- a/lib/crypto/c_src/engine.c
+++ b/lib/crypto/c_src/engine.c
@@ -69,11 +69,17 @@ char *get_key_password(ErlNifEnv *env, ERL_NIF_TERM key) {
ERL_NIF_TERM tmp_term;
ErlNifBinary pwd_bin;
char *pwd = NULL;
- if (enif_get_map_value(env, key, atom_password, &tmp_term) &&
- enif_inspect_binary(env, tmp_term, &pwd_bin) &&
- zero_terminate(pwd_bin, &pwd)
- ) return pwd;
+ if (!enif_get_map_value(env, key, atom_password, &tmp_term))
+ goto err;
+ if (!enif_inspect_binary(env, tmp_term, &pwd_bin))
+ goto err;
+ if (!zero_terminate(pwd_bin, &pwd))
+ goto err;
+
+ return pwd;
+
+ err:
return NULL;
}