[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] libxl: check return values of read/write



# HG changeset patch
# User Ian Campbell <ian.campbell@xxxxxxxxxx>
# Date 1307031970 -3600
# Node ID 9cdc500fd358189e7923cc7b0502d86e9563d073
# Parent  c09a6c9a99e820968a9b697bff1ba62ac102532d
libxl: check return values of read/write

Some distros enable -D_FORTIFY_SOURCE=2 by default
(https://wiki.ubuntu.com/CompilerFlags) which adds the warn_unused_result
attribute to several functions including read(2) and write(2)

Although we don't really care about error reading or writing the libxl spawn fd
catch them anyway to keep this warning happy.

Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
Acked-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
Tested-by: Olaf Hering <olaf@xxxxxxxxx>
Committed-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
---


diff -r c09a6c9a99e8 -r 9cdc500fd358 tools/libxl/libxl_device.c
--- a/tools/libxl/libxl_device.c        Thu Jun 02 17:25:27 2011 +0100
+++ b/tools/libxl/libxl_device.c        Thu Jun 02 17:26:10 2011 +0100
@@ -485,7 +485,9 @@
             }
             if (starting && FD_ISSET(starting->for_spawn->fd, &rfds)) {
                 unsigned char dummy;
-                read(starting->for_spawn->fd, &dummy, sizeof(dummy));
+                if (read(starting->for_spawn->fd, &dummy, sizeof(dummy)) != 1)
+                    LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_DEBUG,
+                                     "failed to read spawn status pipe");
             }
         }
     }
diff -r c09a6c9a99e8 -r 9cdc500fd358 tools/libxl/libxl_exec.c
--- a/tools/libxl/libxl_exec.c  Thu Jun 02 17:25:27 2011 +0100
+++ b/tools/libxl/libxl_exec.c  Thu Jun 02 17:26:10 2011 +0100
@@ -220,8 +220,10 @@
     rc = (WIFEXITED(status) ? WEXITSTATUS(status) :
           WIFSIGNALED(status) && WTERMSIG(status) < 127
           ? WTERMSIG(status)+128 : -1);
-    if (for_spawn)
-        write(pipes[1], &dummy, sizeof(dummy));
+    if (for_spawn) {
+        if (write(pipes[1], &dummy, sizeof(dummy)) != 1)
+            perror("libxl__spawn_spawn: unable to signal child exit to 
parent");
+    }
     _exit(rc);
 
  err_parent_pipes:

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.