daemon: Add perror to two exit paths to make errors clearer.
[libguestfs.git] / daemon / guestfsd.c
index 8130524..8d950fa 100644 (file)
@@ -60,6 +60,11 @@ static char *read_cmdline (void);
 # define MAX(a,b) ((a)>(b)?(a):(b))
 #endif
 
+/* Not the end of the world if this open flag is not defined. */
+#ifndef O_CLOEXEC
+# define O_CLOEXEC 0
+#endif
+
 /* If root device is an ext2 filesystem, this is the major and minor.
  * This is so we can ignore this device from the point of view of the
  * user, eg. in guestfs_list_devices and many other places.
@@ -237,7 +242,8 @@ main (int argc, char *argv[])
 #endif
 
   /* Connect to virtio-serial channel. */
-  int sock = open ("/dev/virtio-ports/org.libguestfs.channel.0", O_RDWR);
+  int sock = open ("/dev/virtio-ports/org.libguestfs.channel.0",
+                   O_RDWR | O_CLOEXEC);
   if (sock == -1) {
     fprintf (stderr,
              "\n"
@@ -252,6 +258,7 @@ main (int argc, char *argv[])
              "output to the libguestfs developers, either in a bug report\n"
              "or on the libguestfs redhat com mailing list.\n"
              "\n");
+    perror ("/dev/virtio-ports/org.libguestfs.channel.0");
     exit (EXIT_FAILURE);
   }
 
@@ -264,8 +271,10 @@ main (int argc, char *argv[])
   xdrmem_create (&xdr, lenbuf, sizeof lenbuf, XDR_ENCODE);
   xdr_u_int (&xdr, &len);
 
-  if (xwrite (sock, lenbuf, sizeof lenbuf) == -1)
+  if (xwrite (sock, lenbuf, sizeof lenbuf) == -1) {
+    perror ("xwrite");
     exit (EXIT_FAILURE);
+  }
 
   xdr_destroy (&xdr);
 
@@ -968,7 +977,8 @@ trim (char *str)
 }
 
 /* printf helper function so we can use %Q ("quoted") and %R to print
- * shell-quoted strings.  See HACKING file for more details.
+ * shell-quoted strings.  See guestfs(3)/EXTENDING LIBGUESTFS for more
+ * details.
  */
 static int
 print_shell_quote (FILE *stream,