sessiond: fix: possible unaligned access in packed structure
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Sat, 14 Sep 2019 20:16:56 +0000 (16:16 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Sat, 14 Sep 2019 20:33:48 +0000 (16:33 -0400)
Use a temporary snapshot_id in cmd_rotate_get_info() to obtain the
return value of cmd_snapshot_add_output() and explicitly assign it to
the reply communication structure. Otherwise, &reply.id may be
unaligned.

Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
src/bin/lttng-sessiond/client.c

index 7b7642ea76baf2e20e759f618742ab5c0a06d688..fa7672b5834a370f3484ae43cb3d8f2306ba937a 100644 (file)
@@ -1712,13 +1712,15 @@ error_add_context:
        }
        case LTTNG_SNAPSHOT_ADD_OUTPUT:
        {
        }
        case LTTNG_SNAPSHOT_ADD_OUTPUT:
        {
+               uint32_t snapshot_id;
                struct lttcomm_lttng_output_id reply;
 
                ret = cmd_snapshot_add_output(cmd_ctx->session,
                struct lttcomm_lttng_output_id reply;
 
                ret = cmd_snapshot_add_output(cmd_ctx->session,
-                               &cmd_ctx->lsm->u.snapshot_output.output, &reply.id);
+                               &cmd_ctx->lsm->u.snapshot_output.output, &snapshot_id);
                if (ret != LTTNG_OK) {
                        goto error;
                }
                if (ret != LTTNG_OK) {
                        goto error;
                }
+               reply.id = snapshot_id;
 
                ret = setup_lttng_msg_no_cmd_header(cmd_ctx, &reply,
                        sizeof(reply));
 
                ret = setup_lttng_msg_no_cmd_header(cmd_ctx, &reply,
                        sizeof(reply));
This page took 0.026148 seconds and 4 git commands to generate.