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>
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;
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,
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;
}