sessiond: fix: possible unaligned access in packed structure
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Sat, 14 Sep 2019 20:09:35 +0000 (16:09 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Sat, 14 Sep 2019 20:33:48 +0000 (16:33 -0400)
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 <jeremie.galarneau@efficios.com>
src/bin/lttng-sessiond/cmd.c

index 14da886238cfbfd90f7e33d4dc05c1c740aca049..c17be934af50f6a589b7e1feef51fddbd70dbcea 100644 (file)
@@ -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();
                }
This page took 0.037749 seconds and 4 git commands to generate.