From 2f767475601e3cdcb856e7d9e1f7a1f296383a36 Mon Sep 17 00:00:00 2001 From: Philippe Proulx Date: Thu, 15 Aug 2019 20:21:33 -0400 Subject: [PATCH] live_viewer_connection_create(): fix leak on connection error g_free() is not enough here: the `url` member is not freed on error. Just destroy the whole connection object cleanly. Signed-off-by: Philippe Proulx Change-Id: I98184be066a9155e08d792d55fc4b8489a15bb30 Reviewed-on: https://review.lttng.org/c/babeltrace/+/1946 Tested-by: jenkins --- src/plugins/ctf/lttng-live/viewer-connection.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/plugins/ctf/lttng-live/viewer-connection.c b/src/plugins/ctf/lttng-live/viewer-connection.c index bc03be54..6b206d34 100644 --- a/src/plugins/ctf/lttng-live/viewer-connection.c +++ b/src/plugins/ctf/lttng-live/viewer-connection.c @@ -1500,7 +1500,10 @@ struct live_viewer_connection *live_viewer_connection_create( error_report: BT_COMP_LOGW("Failure to establish connection to url \"%s\"", url); error: - g_free(viewer_connection); + if (viewer_connection) { + live_viewer_connection_destroy(viewer_connection); + } + return NULL; } @@ -1510,7 +1513,9 @@ void live_viewer_connection_destroy( { BT_COMP_LOGI("Closing connection to url \"%s\"", viewer_connection->url->str); lttng_live_disconnect_viewer(viewer_connection); - g_string_free(viewer_connection->url, true); + if (viewer_connection->url) { + g_string_free(viewer_connection->url, true); + } if (viewer_connection->relay_hostname) { g_string_free(viewer_connection->relay_hostname, true); } -- 2.34.1