Fix: relayd: unchecked poll set creation return value
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Tue, 18 Feb 2020 00:35:52 +0000 (19:35 -0500)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Tue, 18 Feb 2020 19:33:14 +0000 (14:33 -0500)
The fd_tracker_util_poll_create function can fail because of fd
exhaustion or because the underlying epoll call fails.

In both cases, report and handle the error.

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

src/bin/lttng-relayd/main.c

index 3aef0fabc9d84d358349bc77b97bf958a0a48d0d..cbd9e9cc70bc8733e7f82dc59d21b29651524ae2 100644 (file)
@@ -918,6 +918,10 @@ static int create_named_thread_poll_set(struct lttng_poll_event *events,
 
        ret = fd_tracker_util_poll_create(the_fd_tracker,
                        name, events, 1, LTTNG_CLOEXEC);
 
        ret = fd_tracker_util_poll_create(the_fd_tracker,
                        name, events, 1, LTTNG_CLOEXEC);
+       if (ret) {
+               PERROR("Failed to create \"%s\" poll file descriptor", name);
+               goto error;
+       }
 
        /* Add quit pipe */
        ret = lttng_poll_add(events, thread_quit_pipe[0], LPOLLIN | LPOLLERR);
 
        /* Add quit pipe */
        ret = lttng_poll_add(events, thread_quit_pipe[0], LPOLLIN | LPOLLERR);
This page took 0.026362 seconds and 4 git commands to generate.