diff options
-rw-r--r-- | TODO | 3 | ||||
-rw-r--r-- | src/nspawn.c | 9 |
2 files changed, 8 insertions, 4 deletions
@@ -22,9 +22,6 @@ F15: * New Avahi package, enable it by default -* don't trim empty cgroups - https://bugzilla.redhat.com/show_bug.cgi?id=678555 - * make anaconda write timeout=0 for encrypted devices * Fix assert http://lists.freedesktop.org/archives/systemd-devel/2011-April/001910.html diff --git a/src/nspawn.c b/src/nspawn.c index 6b0ba4e57f..969c961895 100644 --- a/src/nspawn.c +++ b/src/nspawn.c @@ -374,6 +374,7 @@ static int is_os_tree(const char *path) { #define BUFFER_SIZE 1024 static int process_pty(int master, sigset_t *mask) { + char in_buffer[BUFFER_SIZE], out_buffer[BUFFER_SIZE]; size_t in_buffer_full = 0, out_buffer_full = 0; struct epoll_event stdin_ev, stdout_ev, master_ev, signal_ev; @@ -464,11 +465,13 @@ static int process_pty(int master, sigset_t *mask) { if ((n = read(signal_fd, &sfsi, sizeof(sfsi))) != sizeof(sfsi)) { if (n >= 0) { + log_error("Failed to read from signalfd: invalid block size"); r = -EIO; goto finish; } if (errno != EINTR && errno != EAGAIN) { + log_error("Failed to read from signalfd: %m"); r = -errno; goto finish; } @@ -481,7 +484,7 @@ static int process_pty(int master, sigset_t *mask) { if (ioctl(STDIN_FILENO, TIOCGWINSZ, &ws) >= 0) ioctl(master, TIOCSWINSZ, &ws); } else { - r = -EINTR; + r = 0; goto finish; } } @@ -501,6 +504,7 @@ static int process_pty(int master, sigset_t *mask) { stdin_readable = false; else { log_error("read(): %m"); + r = -errno; goto finish; } } else @@ -515,6 +519,7 @@ static int process_pty(int master, sigset_t *mask) { master_writable = false; else { log_error("write(): %m"); + r = -errno; goto finish; } @@ -533,6 +538,7 @@ static int process_pty(int master, sigset_t *mask) { master_readable = false; else { log_error("read(): %m"); + r = -errno; goto finish; } } else @@ -547,6 +553,7 @@ static int process_pty(int master, sigset_t *mask) { stdout_writable = false; else { log_error("write(): %m"); + r = -errno; goto finish; } |