git.annexia.org
/
libguestfs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
'len' should be an unsigned 32 bit int.
[libguestfs.git]
/
daemon
/
proto.c
diff --git
a/daemon/proto.c
b/daemon/proto.c
index
709f978
..
431f219
100644
(file)
--- a/
daemon/proto.c
+++ b/
daemon/proto.c
@@
-45,7
+45,7
@@
main_loop (int _sock)
XDR xdr;
char *buf;
char lenbuf[4];
XDR xdr;
char *buf;
char lenbuf[4];
- u
nsigned
len;
+ u
int32_t
len;
struct guestfs_message_header hdr;
struct timeval start_t, end_t;
int64_t start_us, end_us, elapsed_us;
struct guestfs_message_header hdr;
struct timeval start_t, end_t;
int64_t start_us, end_us, elapsed_us;
@@
-288,7
+288,7
@@
reply (xdrproc_t xdrp, char *ret)
fprintf (stderr, "xwrite failed\n");
exit (1);
}
fprintf (stderr, "xwrite failed\n");
exit (1);
}
- if (xwrite (sock, buf, len) ==
len
) {
+ if (xwrite (sock, buf, len) ==
-1
) {
fprintf (stderr, "xwrite failed\n");
exit (1);
}
fprintf (stderr, "xwrite failed\n");
exit (1);
}
@@
-462,7
+462,7
@@
check_for_library_cancellation (void)
return 1;
}
return 1;
}
-void
+int
send_file_end (int cancel)
{
guestfs_chunk chunk;
send_file_end (int cancel)
{
guestfs_chunk chunk;
@@
-470,7
+470,7
@@
send_file_end (int cancel)
chunk.cancel = cancel;
chunk.data.data_len = 0;
chunk.data.data_val = NULL;
chunk.cancel = cancel;
chunk.data.data_len = 0;
chunk.data.data_val = NULL;
- send_chunk (&chunk);
+
return
send_chunk (&chunk);
}
static int
}
static int
@@
-495,8
+495,12
@@
send_chunk (const guestfs_chunk *chunk)
xdr_uint32_t (&xdr, &len);
xdr_destroy (&xdr);
xdr_uint32_t (&xdr, &len);
xdr_destroy (&xdr);
- (void) xwrite (sock, lenbuf, 4);
- (void) xwrite (sock, buf, len);
+ int err = (xwrite (sock, lenbuf, 4) == 0
+ && xwrite (sock, buf, len) == 0 ? 0 : -1);
+ if (err) {
+ fprintf (stderr, "send_chunk: write failed\n");
+ exit (1);
+ }
- return
0
;
+ return
err
;
}
}