X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fclient.cpp;fp=src%2Fbin%2Flttng-sessiond%2Fclient.cpp;h=37ea0509a2c3a71b8897b30d24a77b0859ff5064;hp=cf3fd44243bd18cbce118f4d53b37aa8000a0c15;hb=64803277bbdbe0a943360d918298a48157d9da55;hpb=60f1b42d6280b6bd386abb726dca4fd3b31d8491 diff --git a/src/bin/lttng-sessiond/client.cpp b/src/bin/lttng-sessiond/client.cpp index cf3fd4424..37ea0509a 100644 --- a/src/bin/lttng-sessiond/client.cpp +++ b/src/bin/lttng-sessiond/client.cpp @@ -264,7 +264,7 @@ static pid_t spawn_consumerd(struct consumer_data *consumer_data) tmp = ""; } tmplen = strlen(the_config.consumerd64_lib_dir.value) + 1 /* : */ + strlen(tmp); - tmpnew = (char *) zmalloc(tmplen + 1 /* \0 */); + tmpnew = zmalloc(tmplen + 1 /* \0 */); if (!tmpnew) { ret = -ENOMEM; goto error; @@ -306,7 +306,7 @@ static pid_t spawn_consumerd(struct consumer_data *consumer_data) tmp = ""; } tmplen = strlen(the_config.consumerd32_lib_dir.value) + 1 /* : */ + strlen(tmp); - tmpnew = (char *) zmalloc(tmplen + 1 /* \0 */); + tmpnew = zmalloc(tmplen + 1 /* \0 */); if (!tmpnew) { ret = -ENOMEM; goto error; @@ -1751,7 +1751,7 @@ skip_domain: goto error; } - uris = (lttng_uri *) zmalloc(len); + uris = calloc(nb_uri); if (uris == NULL) { ret = LTTNG_ERR_FATAL; goto error; @@ -1892,31 +1892,35 @@ skip_domain: case LTTNG_LIST_SESSIONS: { unsigned int nr_sessions; - lttng_session *sessions_payload; - size_t payload_len; + lttng_session *sessions_payload = nullptr; + size_t payload_len = 0; session_lock_list(); nr_sessions = lttng_sessions_count( LTTNG_SOCK_GET_UID_CRED(&cmd_ctx->creds), LTTNG_SOCK_GET_GID_CRED(&cmd_ctx->creds)); - payload_len = (sizeof(struct lttng_session) * nr_sessions) + - (sizeof(struct lttng_session_extended) * nr_sessions); - sessions_payload = (lttng_session *) zmalloc(payload_len); + if (nr_sessions > 0) { + payload_len = (sizeof(struct lttng_session) * + nr_sessions) + + (sizeof(struct lttng_session_extended) * + nr_sessions); + sessions_payload = zmalloc(payload_len); + if (!sessions_payload) { + session_unlock_list(); + ret = -ENOMEM; + goto setup_error; + } - if (!sessions_payload) { - session_unlock_list(); - ret = -ENOMEM; - goto setup_error; + cmd_list_lttng_sessions(sessions_payload, nr_sessions, + LTTNG_SOCK_GET_UID_CRED(&cmd_ctx->creds), + LTTNG_SOCK_GET_GID_CRED(&cmd_ctx->creds)); } - cmd_list_lttng_sessions(sessions_payload, nr_sessions, - LTTNG_SOCK_GET_UID_CRED(&cmd_ctx->creds), - LTTNG_SOCK_GET_GID_CRED(&cmd_ctx->creds)); session_unlock_list(); - ret = setup_lttng_msg_no_cmd_header(cmd_ctx, sessions_payload, - payload_len); + ret = setup_lttng_msg_no_cmd_header( + cmd_ctx, sessions_payload, payload_len); free(sessions_payload); if (ret < 0) {