Fix: liblttng-ctl comm: lttng_event_context is not packed
authorJonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Wed, 12 Jan 2022 23:18:08 +0000 (18:18 -0500)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Mon, 28 Feb 2022 21:46:11 +0000 (16:46 -0500)
commit26e1c61ff394774de86a3ebad6a7caa02db69367
treec5d94039caf8eb72526c6b126a07166397814ebc
parent8ddd72efb54e568ddead0aa3fbc05a3ced24da7d
Fix: liblttng-ctl comm: lttng_event_context is not packed

Observed issue
==============

The size of the struct differs between bitness for x86-64 and x86
leading to serialization/deserialization problem across client
(liblttng-ctl) and lttng-sessiond.

sizeof(struct lttng_event_context):

  x86: 308
  x86-64: 312

The struct cannot be marked as LTTNG_PACKED since it is part of the API.

Solution
========

Adopt a similar pattern to the new API with a "serialize" &
"create_from_buffer" approach.

Most of the complexity is moved to `src/common/event.c`

Known drawbacks
=========

None.

Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Change-Id: Ieb400eab2a2df4070ff51cb2b44929d3ea945ce4
include/lttng/event-internal.h
src/bin/lttng-sessiond/client.cpp
src/bin/lttng-sessiond/cmd.cpp
src/bin/lttng-sessiond/cmd.h
src/bin/lttng-sessiond/context.cpp
src/bin/lttng-sessiond/context.h
src/common/event.cpp
src/common/sessiond-comm/sessiond-comm.h
src/lib/lttng-ctl/lttng-ctl.cpp
This page took 0.026639 seconds and 5 git commands to generate.