From 456e2e81b37bdcc5dab7826e8959aede79db75d0 Mon Sep 17 00:00:00 2001 From: ashamedbit Date: Sat, 2 Mar 2024 17:15:58 -0500 Subject: [PATCH] Fix memory leak in netengine.c (#1411) This is in response to issue #1366 The clang static analyzer basically claims that there is a memory leak happening in `set_ssl_ctx` for the variable `args`. The leak is triggered when the base event `base` is NULL and the condition within `set_ssl_ctx` is not triggered. Therefore as a patch I am adding an else condition to free it. (It cannot be freed after the event is created by `event_new` because `args` can be invoked as argument for callback function later on) Please let me know if this patch is helpful :) --------- Co-authored-by: Pavel Punsky --- src/apps/relay/netengine.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/apps/relay/netengine.c b/src/apps/relay/netengine.c index e33a0202..7befb370 100644 --- a/src/apps/relay/netengine.c +++ b/src/apps/relay/netengine.c @@ -349,6 +349,10 @@ void set_ssl_ctx(ioa_engine_handle e, turn_params_t *params) { args->next = params->tls_ctx_update_ev; params->tls_ctx_update_ev = ev; TURN_MUTEX_UNLOCK(&turn_params.tls_mutex); + } else { + if (args) { + free(args); + } } }