From 32b032b61cccb23ef9c2b04946768e6562d7373f Mon Sep 17 00:00:00 2001 From: Tycho Andersen Date: Wed, 10 Sep 2014 19:46:00 +0400 Subject: [PATCH] service: service should compile on Ubuntu 14.04 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I'm not quite sure what the difference is (I have gcc 4.8, but there are probably also header differences), but when I compile the service on 14.04 I get: CC cr-service.o cr-service.c: In function ‘start_page_server_req’: cr-service.c:536:8: error: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Werror=unused-result] write(start_pipe[1], &ret, sizeof(ret)); ^ cr-service.c:544:6: error: ignoring return value of ‘read’, declared with attribute warn_unused_result [-Werror=unused-result] read(start_pipe[0], &ret, sizeof(ret)); ^ Signed-off-by: Tycho Andersen Tested-by: https://travis-ci.org/avagin/criu/builds/34990769 Signed-off-by: Pavel Emelyanov --- cr-service.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/cr-service.c b/cr-service.c index 6ed05c27b..d144f4755 100644 --- a/cr-service.c +++ b/cr-service.c @@ -506,6 +506,7 @@ static int pre_dump_loop(int sk, CriuReq *msg) static int start_page_server_req(int sk, CriuOpts *req) { int ret, pid, start_pipe[2]; + ssize_t count; bool success = false; CriuResp resp = CRIU_RESP__INIT; CriuPageServerInfo ps = CRIU_PAGE_SERVER_INFO__INIT; @@ -533,16 +534,20 @@ static int start_page_server_req(int sk, CriuOpts *req) ret = cr_page_server(true, start_pipe[1]); out_ch: - write(start_pipe[1], &ret, sizeof(ret)); + count = write(start_pipe[1], &ret, sizeof(ret)); close(start_pipe[1]); + if (count != sizeof(ret)) + exit(1); exit(0); } close(start_pipe[1]); wait(NULL); ret = -1; - read(start_pipe[0], &ret, sizeof(ret)); - if (ret > 0) { + count = read(start_pipe[0], &ret, sizeof(ret)); + if (count != sizeof(ret)) + success = false; + else if (ret > 0) { success = true; ps.has_pid = true; ps.pid = ret;