Fix: liblttng-ctl: non-packed structure used for tracker serialization
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Thu, 14 Apr 2022 21:36:54 +0000 (17:36 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Thu, 14 Apr 2022 21:36:54 +0000 (17:36 -0400)
Using unpacked structures in liblttng-ctl's protocol can cause issues
when mixing sessiond and client of different bitness. In this specific
case I doubt it causes a problem, but it could rightfully do on some
architectures.

Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Change-Id: Ie17096a55a4b7508c604e184cae877b83df6e451

src/common/tracker.cpp

index 181a0a8c9c69e411136c7e78979aba5af1d4a013..41e141afe63ae36e09e3caa9f5bb9b21f07331c3 100644 (file)
@@ -22,7 +22,7 @@
 
 struct process_attr_tracker_values_comm_header {
        uint32_t count;
-};
+} LTTNG_PACKED;
 
 struct process_attr_tracker_value_comm {
        /* enum lttng_process_attr_value_type */
@@ -32,7 +32,7 @@ struct process_attr_tracker_value_comm {
                /* Includes the '\0' terminator. */
                uint32_t name_len;
        } value;
-};
+} LTTNG_PACKED;
 
 #define GET_INTEGRAL_COMM_VALUE(value_ptr, as_type)              \
        ((as_type)(std::is_signed<as_type>::value ? (value_ptr)->u._signed : \
This page took 0.027446 seconds and 5 git commands to generate.