From: Christian Brauner Date: Wed, 28 Feb 2018 11:43:47 +0000 (+0100) Subject: terminal: lxc_terminal_master_cb() X-Git-Tag: lxc-3.0.0.beta1~4^2~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5bd171bd777a6ab746f47adb32f40df6e6613c2a;p=thirdparty%2Flxc.git terminal: lxc_terminal_master_cb() Signed-off-by: Christian Brauner --- diff --git a/src/lxc/terminal.c b/src/lxc/terminal.c index 7423b70bd..a801b2669 100644 --- a/src/lxc/terminal.c +++ b/src/lxc/terminal.c @@ -999,9 +999,9 @@ int lxc_terminal_stdin_cb(int fd, uint32_t events, void *cbdata, int lxc_terminal_master_cb(int fd, uint32_t events, void *cbdata, struct lxc_epoll_descr *descr) { - struct lxc_terminal_state *ts = cbdata; - char buf[LXC_TERMINAL_BUFFER_SIZE]; int r, w; + char buf[LXC_TERMINAL_BUFFER_SIZE]; + struct lxc_terminal_state *ts = cbdata; if (fd != ts->masterfd) return LXC_MAINLOOP_CLOSE; @@ -1011,14 +1011,10 @@ int lxc_terminal_master_cb(int fd, uint32_t events, void *cbdata, return LXC_MAINLOOP_CLOSE; w = lxc_write_nointr(ts->stdoutfd, buf, r); - if (w <= 0) { + if (w <= 0 || w != r) return LXC_MAINLOOP_CLOSE; - } else if (w != r) { - SYSERROR("Failed to write"); - return 1; - } - return 0; + return LXC_MAINLOOP_CONTINUE; } int lxc_terminal_getfd(struct lxc_container *c, int *ttynum, int *masterfd)