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:34:11 +0000 (10:34 -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 29249d528bc8da1f1a7b71e00381cc24b65d1678..734fbd3093e273702860fd488e9a548d8c8b9dfe 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.026614 seconds and 4 git commands to generate.