From 5d2a596127bc45d4b4faba2360e6c7b93faaafea Mon Sep 17 00:00:00 2001 From: Thijs Terlouw Date: Wed, 8 Dec 2010 00:06:15 -0800 Subject: [PATCH] fix double free on load error fix ERL_NIF_INIT function according to specs: ERL_NIF_INIT(MODULE, ErlNifFunc funcs[], load, reload, upgrade, unload) --- termsend_threaded/c_src/termsend_threaded.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/termsend_threaded/c_src/termsend_threaded.c b/termsend_threaded/c_src/termsend_threaded.c index d8534db..8f49f28 100644 --- a/termsend_threaded/c_src/termsend_threaded.c +++ b/termsend_threaded/c_src/termsend_threaded.c @@ -177,7 +177,7 @@ load(ErlNifEnv* env, void** priv, ERL_NIF_TERM load_info) error: if(state->queue != NULL) queue_destroy(state->queue); - enif_free(state->queue); + //enif_free(state->queue); //double free bug ( already called free at queue_destroy() ) return -1; } @@ -229,5 +229,5 @@ static ErlNifFunc nif_funcs[] = { {"send_to_self", 0, send_to_self} }; -ERL_NIF_INIT(termsend_threaded, nif_funcs, load, unload, NULL, NULL); +ERL_NIF_INIT(termsend_threaded, nif_funcs, load, NULL, NULL, unload);