From 6c20f4a0c496cfac67ceabe876edc796929ffb64 Mon Sep 17 00:00:00 2001 From: Francis Deslauriers Date: Wed, 15 May 2019 17:55:31 -0400 Subject: [PATCH] Fix: flt.utils.muxer: Potential memory leak MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit scan-build reports a potential memory leak of the muxer_upstream_msg_iter pointer allocated in the `muxer_msg_iter_add_upstream_msg_iter()` function if the `g_queue_new()` fails. So, free the muxer_upstream_msg_iter on the error path. Reported-by: scan-build - Potential leak of memory Signed-off-by: Francis Deslauriers Change-Id: Ia37a1be9525b357d063d5c5bd5623ddccbd4e29d Reviewed-on: https://review.lttng.org/c/babeltrace/+/1312 Tested-by: jenkins Reviewed-by: Jérémie Galarneau --- plugins/utils/muxer/muxer.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/plugins/utils/muxer/muxer.c b/plugins/utils/muxer/muxer.c index ae08d0d7..47d790b3 100644 --- a/plugins/utils/muxer/muxer.c +++ b/plugins/utils/muxer/muxer.c @@ -147,7 +147,7 @@ struct muxer_upstream_msg_iter *muxer_msg_iter_add_upstream_msg_iter( if (!muxer_upstream_msg_iter) { BT_LOGE_STR("Failed to allocate one muxer's upstream message iterator wrapper."); - goto end; + goto error; } muxer_upstream_msg_iter->msg_iter = self_msg_iter; @@ -155,7 +155,7 @@ struct muxer_upstream_msg_iter *muxer_msg_iter_add_upstream_msg_iter( muxer_upstream_msg_iter->msgs = g_queue_new(); if (!muxer_upstream_msg_iter->msgs) { BT_LOGE_STR("Failed to allocate a GQueue."); - goto end; + goto error; } g_ptr_array_add(muxer_msg_iter->active_muxer_upstream_msg_iters, @@ -165,6 +165,12 @@ struct muxer_upstream_msg_iter *muxer_msg_iter_add_upstream_msg_iter( muxer_upstream_msg_iter, muxer_msg_iter, self_msg_iter); + goto end; + +error: + g_free(muxer_upstream_msg_iter); + muxer_upstream_msg_iter = NULL; + end: return muxer_upstream_msg_iter; } -- 2.34.1