fix memory leak in bcrypt_nif:gen_salt
diff --git a/c_src/bcrypt_nif.c b/c_src/bcrypt_nif.c
index b2f8adc..c551f6f 100644
--- a/c_src/bcrypt_nif.c
+++ b/c_src/bcrypt_nif.c
@@ -134,6 +134,7 @@
{
ErlNifBinary csalt, bin;
unsigned long log_rounds;
+ ERL_NIF_TERM ret;
if (!enif_inspect_binary(env, argv[0], &csalt) || 16 != csalt.size) {
return enif_make_badarg(env);
@@ -152,7 +153,9 @@
encode_salt((char *)bin.data, (u_int8_t*)csalt.data, csalt.size, log_rounds);
enif_release_binary(&csalt);
- return enif_make_string(env, (char *)bin.data, ERL_NIF_LATIN1);
+ ret = enif_make_string(env, (char *)bin.data, ERL_NIF_LATIN1);
+ enif_release_binary(&bin);
+ return ret;
}
static ERL_NIF_TERM bcrypt_hashpw(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[])