[Spice-devel] [PATCH v2 8/8] replay: Propagate error correctly in replay_fread
Frediano Ziglio
fziglio at redhat.com
Thu Sep 15 22:19:40 UTC 2016
Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
---
server/red-replay-qxl.c | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/server/red-replay-qxl.c b/server/red-replay-qxl.c
index 73f9cd4..fe4f7a9 100644
--- a/server/red-replay-qxl.c
+++ b/server/red-replay-qxl.c
@@ -57,16 +57,15 @@ struct SpiceReplay {
pthread_cond_t cond;
};
-static int replay_fread(SpiceReplay *replay, uint8_t *buf, size_t size)
+static ssize_t replay_fread(SpiceReplay *replay, uint8_t *buf, size_t size)
{
- if (replay->error) {
- return 0;
- }
- if (feof(replay->fd)) {
+ if (replay->error
+ || feof(replay->fd)
+ || fread(buf, 1, size, replay->fd) != size) {
replay->error = TRUE;
return 0;
}
- return fread(buf, size, 1, replay->fd);
+ return size;
}
__attribute__((format(scanf, 2, 3)))
--
2.7.4
More information about the Spice-devel
mailing list