X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=ltt-sessiond%2Fmain.c;h=b1dbc8f97f6fff2b73a961c6a79c1f48e841b1a5;hb=e88129fcabf35d124a7d97f6600350745dcbbb81;hp=d104830667dd6cf9efc040584a5c18c4293381c9;hpb=996b65c843a7ef76769e4f6cf66055c7c4acf3d0;p=lttng-tools.git diff --git a/ltt-sessiond/main.c b/ltt-sessiond/main.c index d10483066..b1dbc8f97 100644 --- a/ltt-sessiond/main.c +++ b/ltt-sessiond/main.c @@ -41,9 +41,9 @@ #include /* URCU list library (-lurcu) */ #include +#include #include "context.h" -#include "liblttsessiondcomm.h" #include "ltt-sessiond.h" #include "lttngerr.h" #include "kernel-ctl.h" @@ -119,9 +119,11 @@ static gid_t allowed_group(void) { struct group *grp; - grp = (opt_tracing_group != NULL) ? - (grp = getgrnam(opt_tracing_group)) : - (grp = getgrnam(default_tracing_group)); + if (opt_tracing_group) { + grp = getgrnam(opt_tracing_group); + } else { + grp = getgrnam(default_tracing_group); + } if (!grp) { return -1; } else { @@ -287,6 +289,7 @@ static int send_kconsumerd_channel_fds(int sock, struct ltt_kernel_channel *chan lkm.state = stream->state; lkm.max_sb_size = channel->channel->attr.subbuf_size; strncpy(lkm.path_name, stream->pathname, PATH_MAX); + lkm.path_name[PATH_MAX - 1] = '\0'; DBG("Sending fd %d to kconsumerd", lkm.fd); @@ -336,6 +339,7 @@ static int send_kconsumerd_fds(int sock, struct ltt_kernel_session *session) lkm.state = ACTIVE_FD; lkm.max_sb_size = session->metadata->conf->attr.subbuf_size; strncpy(lkm.path_name, session->metadata->pathname, PATH_MAX); + lkm.path_name[PATH_MAX - 1] = '\0'; ret = lttcomm_send_fds_unix_sock(sock, &lkm, &lkm.fd, 1, sizeof(lkm)); if (ret < 0) { @@ -1273,7 +1277,9 @@ static void list_lttng_sessions(struct lttng_session *sessions) */ cds_list_for_each_entry(session, &session_list_ptr->head, list) { strncpy(sessions[i].path, session->path, PATH_MAX); + sessions[i].path[PATH_MAX - 1] = '\0'; strncpy(sessions[i].name, session->name, NAME_MAX); + sessions[i].name[NAME_MAX - 1] = '\0'; i++; } } @@ -1319,6 +1325,7 @@ static void list_lttng_events(struct ltt_kernel_channel *kchan, /* Kernel channels */ cds_list_for_each_entry(event, &kchan->events_list.head , list) { strncpy(events[i].name, event->event->name, LTTNG_SYMBOL_NAME_LEN); + events[i].name[LTTNG_SYMBOL_NAME_LEN - 1] = '\0'; events[i].enabled = event->enabled; switch (event->event->instrumentation) { case LTTNG_KERNEL_TRACEPOINT: @@ -1442,6 +1449,7 @@ static int process_client_msg(struct command_ctx *cmd_ctx) strncpy(kctx.u.perf_counter.name, cmd_ctx->lsm->u.context.ctx.u.perf_counter.name, LTTNG_SYMBOL_NAME_LEN); + kctx.u.perf_counter.name[LTTNG_SYMBOL_NAME_LEN - 1] = '\0'; /* Add kernel context to kernel tracer. See context.c */ ret = add_kernel_context(cmd_ctx->session->kernel_session, &kctx, @@ -2060,7 +2068,7 @@ static int process_client_msg(struct command_ctx *cmd_ctx) goto setup_error; } - DBG("Listing events (%ld events)", nb_event); + DBG("Listing events (%zu events)", nb_event); list_lttng_events(kchan, (struct lttng_event *)(cmd_ctx->llm->payload)); @@ -2439,8 +2447,6 @@ end: */ static int check_existing_daemon(void) { - int ret; - if (access(client_unix_sock_path, F_OK) < 0 && access(apps_unix_sock_path, F_OK) < 0) return 0; @@ -2460,7 +2466,6 @@ static int check_existing_daemon(void) static int set_permissions(void) { int ret; - struct group *grp; gid_t gid; gid = allowed_group();