[Spice-devel] [PATCH v3 6/8] replay: Propagate error correctly in replay_fread
Jonathon Jongsma
jjongsma at redhat.com
Wed Sep 21 08:11:45 UTC 2016
Acked-by: Jonathon Jongsma <jjongsma at redhat.com>
On Fri, 2016-09-16 at 12:32 +0100, Frediano Ziglio wrote:
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> ---
> 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)))
More information about the Spice-devel
mailing list