Fix: flt.utils.muxer: Potential memory leak
[babeltrace.git] / plugins / utils / muxer / muxer.c
index 56729a7fe30457c3c67f65cf63fd249cc2df7791..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;
 }
@@ -1462,7 +1468,7 @@ bt_self_message_iterator_status muxer_msg_iter_seek_beginning(
 {
        struct muxer_msg_iter *muxer_msg_iter =
                bt_self_message_iterator_get_data(self_msg_iter);
-       int status;
+       bt_message_iterator_status status = BT_MESSAGE_ITERATOR_STATUS_OK;
        uint64_t i;
 
        /* Seek all ended upstream iterators first */
@@ -1513,5 +1519,5 @@ bt_self_message_iterator_status muxer_msg_iter_seek_beginning(
                MUXER_MSG_ITER_CLOCK_CLASS_EXPECTATION_ANY;
 
 end:
-       return status;
+       return (bt_self_message_iterator_status) status;
 }
This page took 0.026242 seconds and 4 git commands to generate.