Fix: flt.utils.muxer: Potential memory leak
authorFrancis Deslauriers <francis.deslauriers@efficios.com>
Wed, 15 May 2019 21:55:31 +0000 (17:55 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Tue, 21 May 2019 19:38:47 +0000 (15:38 -0400)
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 <francis.deslauriers@efficios.com>
Change-Id: Ia37a1be9525b357d063d5c5bd5623ddccbd4e29d
Reviewed-on: https://review.lttng.org/c/babeltrace/+/1312
Tested-by: jenkins
Reviewed-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
plugins/utils/muxer/muxer.c

index ae08d0d719f5845266ceb28734e1b081178efde7..47d790b3d9a14e59387e7d611c984077680d608e 100644 (file)
@@ -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;
 }
This page took 0.025874 seconds and 4 git commands to generate.