[lxc-devel] [PATCH] fortify: check the value returned from write(2)
Dwight Engen
dwight.engen at oracle.com
Mon Apr 15 19:40:53 UTC 2013
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 <dwight.engen at oracle.com>
---
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 3dd2155..643c442 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;
}
--
1.7.12.3
More information about the lxc-devel
mailing list