[CRIU] [PATCH] service: service should compile on Ubuntu 14.04

Tycho Andersen tycho.andersen at canonical.com
Wed Sep 10 08:46:25 PDT 2014


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 <tycho.andersen at canonical.com>
---
 cr-service.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/cr-service.c b/cr-service.c
index 6ed05c2..d144f47 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;
-- 
1.9.1



More information about the CRIU mailing list