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>
Wed, 18 May 2022 14:07:38 +0000 (10:07 -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.c

index 1c50d9d7911b8fcd2a410f55893b48669f48640a..006535046e56c416e728eb9253a51e3ce3067f54 100644 (file)
@@ -20,7 +20,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 */
@@ -30,7 +30,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)(is_signed(as_type) ? (value_ptr)->u._signed : \
This page took 0.025708 seconds and 4 git commands to generate.