if (ret < 0) {
PERROR("snprintf kernel channel path");
goto error;
+ } else if (ret >= sizeof(tmp_path)) {
+ ERR("Kernel channel path exceeds the maximal allowed length of of %zu bytes (%i bytes required) with path \"%s%s%s\"",
+ sizeof(tmp_path), ret,
+ consumer->dst.session_root_path,
+ consumer->chunk_path,
+ consumer->subdir);
+ goto error;
}
pathname = lttng_strndup(tmp_path, sizeof(tmp_path));
if (!pathname) {
if (ret < 0) {
PERROR("snprintf kernel metadata path");
goto error;
+ } else if (ret >= sizeof(tmp_path)) {
+ ERR("Kernel channel path exceeds the maximal allowed length of of %zu bytes (%i bytes required) with path \"%s%s\"",
+ sizeof(tmp_path), ret,
+ consumer->dst.net.base_dir,
+ consumer->subdir);
+ goto error;
}
pathname = lttng_strndup(tmp_path, sizeof(tmp_path));
if (!pathname) {
}
/* Prep channel message structure */
- consumer_init_channel_comm_msg(&lkm,
- LTTNG_CONSUMER_ADD_CHANNEL,
+ consumer_init_add_channel_comm_msg(&lkm,
channel->key,
ksession->id,
pathname,
}
/* Prep channel message structure */
- consumer_init_channel_comm_msg(&lkm,
- LTTNG_CONSUMER_ADD_CHANNEL,
+ consumer_init_add_channel_comm_msg(&lkm,
session->metadata->key,
session->id,
pathname,
/*
* Sending a single stream to the consumer with command ADD_STREAM.
*/
+static
int kernel_consumer_add_stream(struct consumer_socket *sock,
struct ltt_kernel_channel *channel, struct ltt_kernel_stream *stream,
struct ltt_kernel_session *session, unsigned int monitor)
*
* The consumer socket lock must be held by the caller.
*/
-int kernel_consumer_send_channel_stream(struct consumer_socket *sock,
+int kernel_consumer_send_channel_streams(struct consumer_socket *sock,
struct ltt_kernel_channel *channel, struct ltt_kernel_session *session,
unsigned int monitor)
{
/* Send channel and streams of it */
cds_list_for_each_entry(chan, &session->channel_list.head, list) {
- ret = kernel_consumer_send_channel_stream(sock, chan, session,
+ ret = kernel_consumer_send_channel_streams(sock, chan, session,
monitor);
if (ret < 0) {
goto error;