Release resources under failure

sign and generichash failed to release their resources under failure.

This can lead to subtle memory leaks in the very unlikely event
we can't initialize.
This commit is contained in:
Jesper Louis Andersen 2020-01-16 15:45:42 +01:00
parent f43a730758
commit b7533d3b9c

View File

@ -685,6 +685,7 @@ static ERL_NIF_TERM enif_crypto_sign_init(ErlNifEnv *env, int argc,
}
if (0 != crypto_sign_init(state)) {
enif_release_resource(state);
return nacl_error_tuple(env, "sign_init_error");
}
@ -1891,6 +1892,7 @@ static ERL_NIF_TERM enif_crypto_generichash_init(ErlNifEnv *env, int argc,
// Call the library function
if (0 != crypto_generichash_init(align64(state), k, key.size, hashSize)) {
enif_release_resource(state);
return nacl_error_tuple(env, "hash_init_error");
}