X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fclient.c;h=689dc258a604cff0f3d7816f72ff8778523f8cd5;hp=1bf55f60b7f415afa81274b20af8c54bc09ef9d6;hb=16100d7ad8517131cc3ef29743e325184802ad13;hpb=fe489250ce102edf511e99669025934ec9587c63 diff --git a/src/bin/lttng-sessiond/client.c b/src/bin/lttng-sessiond/client.c index 1bf55f60b..689dc258a 100644 --- a/src/bin/lttng-sessiond/client.c +++ b/src/bin/lttng-sessiond/client.c @@ -92,7 +92,11 @@ static int setup_lttng_msg(struct command_ctx *cmd_ctx, .data_size = payload_len, }; - lttng_dynamic_buffer_set_size(&cmd_ctx->reply_payload.buffer, 0); + ret = lttng_dynamic_buffer_set_size(&cmd_ctx->reply_payload.buffer, 0); + if (ret) { + goto end; + } + lttng_dynamic_pointer_array_clear(&cmd_ctx->reply_payload._fd_handles); cmd_ctx->lttng_msg_size = total_msg_size; @@ -133,7 +137,10 @@ static int setup_empty_lttng_msg(struct command_ctx *cmd_ctx) int ret; const struct lttcomm_lttng_msg llm = {}; - lttng_dynamic_buffer_set_size(&cmd_ctx->reply_payload.buffer, 0); + ret = lttng_dynamic_buffer_set_size(&cmd_ctx->reply_payload.buffer, 0); + if (ret) { + goto end; + } /* Append place-holder reply header. */ ret = lttng_dynamic_buffer_append( @@ -735,32 +742,10 @@ static int send_unix_sock(int sock, struct lttng_payload_view *view) } if (fd_count > 0) { - int i; - struct lttng_dynamic_array raw_fds; - - /* - * Never holds ownership of the FDs; this is just used - * to put the FDs in a contiguous array. - */ - lttng_dynamic_array_init(&raw_fds, sizeof(int), NULL); - - for (i = 0; i < fd_count; i++) { - struct fd_handle *handle = - lttng_payload_view_pop_fd_handle(view); - const int raw_fd = fd_handle_get_fd(handle); - - ret = lttng_dynamic_array_add_element(&raw_fds, &raw_fd); - fd_handle_put(handle); - if (ret) { - lttng_dynamic_array_reset(&raw_fds); - goto end; - } + ret = lttcomm_send_payload_view_fds_unix_sock(sock, view); + if (ret < 0) { + goto end; } - - ret = lttcomm_send_fds_unix_sock(sock, - (const int *) raw_fds.buffer.data, - fd_count); - lttng_dynamic_array_reset(&raw_fds); } end: