From a996272cf5c9f902680fa57363796d5ba0fb9f66 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Wed, 26 Dec 2018 00:36:55 +0900 Subject: [PATCH] udev-event: do not read stdout or stderr if the pipefd is not created Fixes #11255. (cherry picked from commit adeb26c1affd09138bb96a9e25b795d146e64c97) (cherry picked from commit 32a11a27b69031240beea38260d93e034ea33036) Gbp-Pq: Name udev-event-do-not-read-stdout-or-stderr-if-the-pipefd-is-.patch --- src/udev/udev-event.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c index e28d6a5d..3e916976 100644 --- a/src/udev/udev-event.c +++ b/src/udev/udev-event.c @@ -570,13 +570,17 @@ static int spawn_wait(Spawn *spawn) { } } - r = sd_event_add_io(e, NULL, spawn->fd_stdout, EPOLLIN, on_spawn_io, spawn); - if (r < 0) - return r; + if (spawn->fd_stdout >= 0) { + r = sd_event_add_io(e, NULL, spawn->fd_stdout, EPOLLIN, on_spawn_io, spawn); + if (r < 0) + return r; + } - r = sd_event_add_io(e, NULL, spawn->fd_stderr, EPOLLIN, on_spawn_io, spawn); - if (r < 0) - return r; + if (spawn->fd_stderr >= 0) { + r = sd_event_add_io(e, NULL, spawn->fd_stderr, EPOLLIN, on_spawn_io, spawn); + if (r < 0) + return r; + } r = sd_event_add_child(e, NULL, spawn->pid, WEXITED, on_spawn_sigchld, spawn); if (r < 0) -- 2.30.2