From b35e2c4e30dde9b25ce5579a779082581b8cfaa3 Mon Sep 17 00:00:00 2001 From: William Yang Date: Sat, 7 Oct 2023 18:30:52 +0200 Subject: [PATCH] fix(listener): credconfig leak --- c_src/quicer_listener.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/c_src/quicer_listener.c b/c_src/quicer_listener.c index bf291f07..0d67d03c 100644 --- a/c_src/quicer_listener.c +++ b/c_src/quicer_listener.c @@ -279,6 +279,7 @@ listen2(ErlNifEnv *env, __unused_parm__ int argc, const ERL_NIF_TERM argv[]) { // TLS opt error not file content error free(cacertfile); + free_certificate(&CredConfig); return ERROR_TUPLE_2(ATOM_CACERTFILE); } @@ -288,6 +289,7 @@ listen2(ErlNifEnv *env, __unused_parm__ int argc, const ERL_NIF_TERM argv[]) if (!l_ctx) { free(cacertfile); + free_certificate(&CredConfig); return ERROR_TUPLE_2(ATOM_ERROR_NOT_ENOUGH_MEMORY); } @@ -306,6 +308,10 @@ listen2(ErlNifEnv *env, __unused_parm__ int argc, const ERL_NIF_TERM argv[]) goto exit; } } + else + { // since we don't use cacertfile, free it + free(cacertfile); + } // Set owner for l_ctx if (!enif_self(env, &(l_ctx->listenerPid)))