diff options
author | 2018-12-26 00:36:55 +0900 | |
---|---|---|
committer | 2018-12-28 12:51:40 +0100 | |
commit | adeb26c1affd09138bb96a9e25b795d146e64c97 (patch) | |
tree | 1f700fbb908c23775176b73d041942796b9d3189 | |
parent | switch-root: fix error message (diff) | |
download | systemd-master.tar.gz systemd-master.tar.bz2 systemd-master.zip |
Fixes #11255.
-rw-r--r-- | src/udev/udev-event.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c index e28d6a5d0..3e916976c 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) |