From: Jérémie Galarneau Date: Mon, 20 Aug 2018 19:12:13 +0000 (-0400) Subject: Fix: use of uninitialized 'nb_pipes_fd' X-Git-Tag: v2.11.0-rc1~146 X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=8bdcc002595070b62b2ea7a58fa7f9b090cf6d2d;p=lttng-tools.git Fix: use of uninitialized 'nb_pipes_fd' 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 --- 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");