Commands which return a variable-length payload re-setup the
command context using setup_lttng_msg() (and its wrappers).
In doing so, the lttcomm_lttng_msg structure (plus its trailing
variable-length payload) are re-allocated. However, the previous
instance of lttcomm_lttng_msg is leaked.
This is solved by free()-ing the original lttcomm_lttng_msg when
setup_lttng_msg() is used. When it is only used once, a NULL
pointer will be free'd without any effect.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
const size_t payload_offset = cmd_header_offset + cmd_header_len;
const size_t total_msg_size = header_len + cmd_header_len + payload_len;
+ free(cmd_ctx->llm);
cmd_ctx->llm = zmalloc(total_msg_size);
if (cmd_ctx->llm == NULL) {