From 0a2188544a538b421612c90d44e56853a9d64458 Mon Sep 17 00:00:00 2001 From: Dwight Engen Date: Mon, 15 Apr 2013 15:40:53 -0400 Subject: [PATCH] fortify: check the value returned from write(2) Also check that we wrote the amount we expected to. The write on the pty is blocking but we could still get a short write on EINTR, so we should SYSERROR it. Signed-off-by: Dwight Engen Acked-by: Serge E. Hallyn --- src/lxc/lxc_console.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/lxc/lxc_console.c b/src/lxc/lxc_console.c index 3dd2155c6..643c44276 100644 --- a/src/lxc/lxc_console.c +++ b/src/lxc/lxc_console.c @@ -165,14 +165,18 @@ static int master_handler(int fd, void *data, struct lxc_epoll_descr *descr) { char buf[1024]; int *peer = (int *)data; - int r; + int r,w; r = read(fd, buf, sizeof(buf)); if (r < 0) { SYSERROR("failed to read"); return 1; } - r = write(*peer, buf, r); + w = write(*peer, buf, r); + if (w < 0 || w != r) { + SYSERROR("failed to write"); + return 1; + } return 0; } -- 2.47.3