[PATCH v3 6/8] replay: Propagate error correctly in replay_fread

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

 



Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx>
---
 server/red-replay-qxl.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/server/red-replay-qxl.c b/server/red-replay-qxl.c
index 6914c17..6950f98 100644
--- a/server/red-replay-qxl.c
+++ b/server/red-replay-qxl.c
@@ -57,16 +57,14 @@ 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

_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]