+ {
+ const lttng_buffer_view cmd_header_view =
+ lttng_buffer_view_from_dynamic_buffer(
+ &reply.buffer, 0, sizeof(*cmd_header));
+
+ if (!lttng_buffer_view_is_valid(&cmd_header_view)) {
+ ret = -LTTNG_ERR_INVALID_PROTOCOL;
+ goto end;
+ }
+
+ cmd_header = (struct lttcomm_list_command_header *)
+ cmd_header_view.data;
+ }
+
+ if (cmd_header->count > INT_MAX) {
+ ret = -LTTNG_ERR_OVERFLOW;
+ goto end;
+ }
+
+ nb_event_fields = cmd_header->count;
+
+ {
+ lttng_payload_view reply_view =
+ lttng_payload_view_from_payload(&reply,
+ sizeof(*cmd_header), -1);
+
+ ret_code = lttng_event_fields_create_and_flatten_from_payload(
+ &reply_view, nb_event_fields, fields);
+ if (ret_code != LTTNG_OK) {
+ ret = -ret_code;
+ goto end;
+ }
+ }
+
+ ret = nb_event_fields;
+
+end:
+ return ret;