[Spice-devel] [PATCH v3] Replay: report error if we don't read the correct file header

Pavel Grunt pgrunt at redhat.com
Thu Jan 21 23:43:41 PST 2016


Thanks!

Acked-by: Pavel Grunt <pgrunt at redhat.com>

On Thu, 2016-01-21 at 11:25 -0600, Jonathon Jongsma wrote:
> The replay file should start with a header such as
>   SPICE_REPLAY 1
> 
> Instead of soldiering on if we don't encounter this header, print a
> warning and return NULL.  Also exit with a failure if
> spice_replay_new()
> returns a NULL object in main.
> ---
>  server/red-replay-qxl.c | 3 +++
>  server/tests/replay.c   | 4 ++++
>  2 files changed, 7 insertions(+)
> 
> diff --git a/server/red-replay-qxl.c b/server/red-replay-qxl.c
> index 72d06c8..17ee022 100644
> --- a/server/red-replay-qxl.c
> +++ b/server/red-replay-qxl.c
> @@ -1209,6 +1209,9 @@ SpiceReplay *spice_replay_new(FILE *file, int
> nsurfaces)
>              spice_warning("Replay file version unsupported");
>              return NULL;
>          }
> +    } else {
> +        spice_warning("This doesn't look like a valid replay file");
> +        return NULL;
>      }
>  
>      replay = spice_malloc0(sizeof(SpiceReplay));
> diff --git a/server/tests/replay.c b/server/tests/replay.c
> index 2af9481..0c98168 100644
> --- a/server/tests/replay.c
> +++ b/server/tests/replay.c
> @@ -369,6 +369,10 @@ int main(int argc, char **argv)
>      if (total_size > 0)
>          g_timeout_add_seconds(1, progress_timer, fd);
>      replay = spice_replay_new(fd, MAX_SURFACE_NUM);
> +    if (replay == NULL) {
> +        g_printerr("Error initializing replay\n");
> +        exit(1);
> +    }
>  
>      aqueue = g_async_queue_new();
>      core = basic_event_loop_init();


More information about the Spice-devel mailing list