From: Richard Jones Date: Sun, 26 Apr 2009 08:51:30 +0000 (+0100) Subject: Carefully check return values from xwrite. X-Git-Tag: 1.0.13~7 X-Git-Url: http://git.annexia.org/?a=commitdiff_plain;h=38f9222d21fb3c3005872de05247ff16a66db945;p=libguestfs.git Carefully check return values from xwrite. --- diff --git a/daemon/proto.c b/daemon/proto.c index becf27c..ffb4a4e 100644 --- a/daemon/proto.c +++ b/daemon/proto.c @@ -79,6 +79,7 @@ main_loop (int _sock) xread (sock, buf, len); +#if 0 if (verbose) { int i, j; @@ -99,6 +100,7 @@ main_loop (int _sock) printf ("|\n"); } } +#endif /* Decode the message header. */ xdrmem_create (&xdr, buf, len, XDR_DECODE); @@ -209,8 +211,14 @@ send_error (const char *msg) xdr_uint32_t (&xdr, &len); xdr_destroy (&xdr); - (void) xwrite (sock, lenbuf, 4); - (void) xwrite (sock, buf, len); + if (xwrite (sock, lenbuf, 4) == -1) { + fprintf (stderr, "xwrite failed\n"); + exit (1); + } + if (xwrite (sock, buf, len) == -1) { + fprintf (stderr, "xwrite failed\n"); + exit (1); + } } void @@ -250,8 +258,14 @@ reply (xdrproc_t xdrp, char *ret) xdr_uint32_t (&xdr, &len); xdr_destroy (&xdr); - (void) xwrite (sock, lenbuf, 4); - (void) xwrite (sock, buf, len); + if (xwrite (sock, lenbuf, 4) == -1) { + fprintf (stderr, "xwrite failed\n"); + exit (1); + } + if (xwrite (sock, buf, len) == len) { + fprintf (stderr, "xwrite failed\n"); + exit (1); + } } /* Receive file chunks, repeatedly calling 'cb'. */