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

Jonathon Jongsma jjongsma at redhat.com
Thu Jan 21 09:15:20 PST 2016


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   | 1 +
 2 files changed, 4 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..2641318 100644
--- a/server/tests/replay.c
+++ b/server/tests/replay.c
@@ -369,6 +369,7 @@ 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);
+    spice_assert(replay != NULL);
 
     aqueue = g_async_queue_new();
     core = basic_event_loop_init();
-- 
2.4.3



More information about the Spice-devel mailing list