From: Francis Deslauriers Date: Mon, 16 Nov 2020 21:50:41 +0000 (-0500) Subject: Fix: lttng-ctl: deserialize on orderly shutdown of sessiond X-Git-Tag: v2.13.0-rc1~418 X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=commitdiff_plain;h=bacc41cc41d9702241e7a52617fed046ed5f5506;hp=bacc41cc41d9702241e7a52617fed046ed5f5506 Fix: lttng-ctl: deserialize on orderly shutdown of sessiond Issue ===== The `recv_data_sessiond()` function may return zero if the socket peer has shutdown orderly. This happens if the session daemon is killed while the client is blocked on the `recv_data_sessiond()` call. Currently, when this happens, the client simply goes on to decode the uninitialized reply buffer. This bug was witnessed while developing the upcoming event-notifier feature where complex objects are received from sessiond and attempts to deserialize these objects resulted in segmentation faults. Solution ======== Return -LTTNG_ERR_NO_SESSIOND when `recvmsg()` returns zero. This way, the client can simply tell the user that the session daemon is no longer available. Signed-off-by: Francis Deslauriers Signed-off-by: Jérémie Galarneau Change-Id: Ib2387526c4101e3bae706e38181bfeb25da26fa3 ---