From: Jérémie Galarneau Date: Tue, 19 Mar 2019 19:37:28 +0000 (-0400) Subject: Fix: lttng_uri structure must be packed as it is used for IPC X-Git-Tag: v2.12.0-rc1~648 X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=commitdiff_plain;h=7f23e028113f1fd285a6ef6cd53310ed6164a87c;hp=77927271f4b396ec3cb9e8e380c26d19e3589558 Fix: lttng_uri structure must be packed as it is used for IPC The lttng_create_session commands send lttng_uri structures over a UNIX socket. As such, the structure must be packed to preclude the inclusion of any padding. Moreover, the 'in_port_t' is replaced by uint16_t and PATH_MAX is replaced by LTTNG_PATH_MAX to prevent conflicts if both ends of the IPC are not build with the same toolchain/definitions. Signed-off-by: Jérémie Galarneau --- diff --git a/src/common/uri.h b/src/common/uri.h index 3ef6669e6..17b041918 100644 --- a/src/common/uri.h +++ b/src/common/uri.h @@ -20,6 +20,7 @@ #include #include +#include /* Destination type of lttng URI */ enum lttng_dst_type { @@ -65,14 +66,14 @@ struct lttng_uri { enum lttng_uri_type utype; enum lttng_stream_type stype; enum lttng_proto_type proto; - in_port_t port; - char subdir[PATH_MAX]; + uint16_t port; + char subdir[LTTNG_PATH_MAX]; union { char ipv4[INET_ADDRSTRLEN]; char ipv6[INET6_ADDRSTRLEN]; - char path[PATH_MAX]; + char path[LTTNG_PATH_MAX]; } dst; -}; +} LTTNG_PACKED; int uri_compare(struct lttng_uri *uri1, struct lttng_uri *uri2); void uri_free(struct lttng_uri *uri);