From 8bdcc002595070b62b2ea7a58fa7f9b090cf6d2d Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=A9mie=20Galarneau?= Date: Mon, 20 Aug 2018 15:12:13 -0400 Subject: [PATCH] Fix: use of uninitialized 'nb_pipes_fd' MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit nb_pipes_fd can be used uninitialized in the consumers' data polling threads if 'consumer_data.need_update' is false. In practice, this is not a problem as 'consumer_data.need_update' is true on the first execution of the thread's loop. Reported-by: Coverity Scan (1387046 Uninitialized scalar variable) Signed-off-by: Jérémie Galarneau --- src/common/consumer/consumer.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/common/consumer/consumer.c b/src/common/consumer/consumer.c index 46b961e89..0cfbf5c7c 100644 --- a/src/common/consumer/consumer.c +++ b/src/common/consumer/consumer.c @@ -2576,7 +2576,9 @@ void *consumer_thread_data_poll(void *data) /* local view of the streams */ struct lttng_consumer_stream **local_stream = NULL, *new_stream = NULL; /* local view of consumer_data.fds_count */ - int nb_fd = 0, nb_pipes_fd; + int nb_fd = 0; + /* 2 for the consumer_data_pipe and wake up pipe */ + const int nb_pipes_fd = 2; /* Number of FDs with CONSUMER_ENDPOINT_INACTIVE but still open. */ int nb_inactive_fd = 0; struct lttng_consumer_local_data *ctx = data; @@ -2616,12 +2618,7 @@ void *consumer_thread_data_poll(void *data) free(local_stream); local_stream = NULL; - /* - * Allocate for all fds + 2: - * +1 for the consumer_data_pipe - * +1 for wake up pipe - */ - nb_pipes_fd = 2; + /* Allocate for all fds */ pollfd = zmalloc((consumer_data.stream_count + nb_pipes_fd) * sizeof(struct pollfd)); if (pollfd == NULL) { PERROR("pollfd malloc"); -- 2.34.1