Fix: relayd: send_viewer_streams sends stack data in padding
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Thu, 16 Jul 2020 16:39:20 +0000 (12:39 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Thu, 16 Jul 2020 16:43:53 +0000 (12:43 -0400)
A single stack-allocated instance of `struct lttng_viewer_stream` is
used to send the various streams to the live viewer. This structure
contains a path and channel name which remain uninitialized beyond the
null terminator.

The structure is zeroed on every iteration.

Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Change-Id: I1c60ee18e01e8f56157f0fe44bd3bd64b1194703

src/bin/lttng-relayd/live.c

index 37c5464520f1bf08546ac051d8e1bf38046c9d65..9074f24f367e8ca88196ef763781b9f16493ef16 100644 (file)
@@ -192,7 +192,6 @@ ssize_t send_viewer_streams(struct lttcomm_sock *sock,
                uint64_t session_id, unsigned int ignore_sent_flag)
 {
        ssize_t ret;
                uint64_t session_id, unsigned int ignore_sent_flag)
 {
        ssize_t ret;
-       struct lttng_viewer_stream send_stream;
        struct lttng_ht_iter iter;
        struct relay_viewer_stream *vstream;
 
        struct lttng_ht_iter iter;
        struct relay_viewer_stream *vstream;
 
@@ -201,6 +200,7 @@ ssize_t send_viewer_streams(struct lttcomm_sock *sock,
        cds_lfht_for_each_entry(viewer_streams_ht->ht, &iter.iter, vstream,
                        stream_n.node) {
                struct ctf_trace *ctf_trace;
        cds_lfht_for_each_entry(viewer_streams_ht->ht, &iter.iter, vstream,
                        stream_n.node) {
                struct ctf_trace *ctf_trace;
+               struct lttng_viewer_stream send_stream = {};
 
                health_code_update();
 
 
                health_code_update();
 
This page took 0.027915 seconds and 5 git commands to generate.