From: Jérémie Galarneau Date: Sat, 14 Sep 2019 20:09:35 +0000 (-0400) Subject: sessiond: fix: possible unaligned access in packed structure X-Git-Tag: v2.12.0-rc1~383 X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=commitdiff_plain;h=09cfbe475dd1c509762e326c1063d0fe78065a2a sessiond: fix: possible unaligned access in packed structure Use temporary control and data port variables to get rotation destination ports and explicitly copy them to the return communication structure. Signed-off-by: Jérémie Galarneau --- diff --git a/src/bin/lttng-sessiond/cmd.c b/src/bin/lttng-sessiond/cmd.c index 14da88623..c17be934a 100644 --- a/src/bin/lttng-sessiond/cmd.c +++ b/src/bin/lttng-sessiond/cmd.c @@ -4995,6 +4995,9 @@ int cmd_rotate_get_info(struct ltt_session *session, } break; case CONSUMER_DST_NET: + { + uint16_t ctrl_port, data_port; + current_tracing_path_reply = info_return->location.relay.relative_path; current_tracing_path_reply_len = @@ -5013,9 +5016,9 @@ int cmd_rotate_get_info(struct ltt_session *session, goto end; } - session_get_net_consumer_ports(session, - &info_return->location.relay.ports.control, - &info_return->location.relay.ports.data); + session_get_net_consumer_ports(session, &ctrl_port, &data_port); + info_return->location.relay.ports.control = ctrl_port; + info_return->location.relay.ports.data = data_port; info_return->location_type = (int8_t) LTTNG_TRACE_ARCHIVE_LOCATION_TYPE_RELAY; chunk_path = strdup(session->last_chunk_path); @@ -5026,6 +5029,7 @@ int cmd_rotate_get_info(struct ltt_session *session, goto end; } break; + } default: abort(); }