summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYonit Halperin <yhalperi@redhat.com>2013-04-08 16:27:11 -0400
committerYonit Halperin <yhalperi@redhat.com>2013-04-09 09:01:26 -0400
commitdb0a525588970859b67cf44c071c849b638f6eec (patch)
treed82c1ef370d783487648b9fe4fd393273dc8a419
parent0c0c94b7d7898feb4bb33caf383242ef26b62d09 (diff)
channel_base: exit handle_migrate when expecting MIGRATE_DATA and receiving something else
Previously, when an error occurred on the src server side, and we received other message than MIGRATE_DATA, this messages was forwarded to the dest server, and made it crash.
-rw-r--r--gtk/channel-base.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gtk/channel-base.c b/gtk/channel-base.c
index a7e9580..dff3024 100644
--- a/gtk/channel-base.c
+++ b/gtk/channel-base.c
@@ -168,11 +168,13 @@ void spice_channel_handle_migrate(SpiceChannel *channel, SpiceMsgIn *in)
if (mig->flags & SPICE_MIGRATE_NEED_DATA_TRANSFER) {
spice_channel_recv_msg(channel, get_msg_handler, &data);
if (!data) {
- g_warning("expected SPICE_MSG_MIGRATE_DATA, got empty message");
+ g_critical("expected SPICE_MSG_MIGRATE_DATA, got empty message");
+ return;
} else if (spice_header_get_msg_type(data->header, c->use_mini_header) !=
SPICE_MSG_MIGRATE_DATA) {
- g_warning("expected SPICE_MSG_MIGRATE_DATA, got %d",
+ g_critical("expected SPICE_MSG_MIGRATE_DATA, got %d",
spice_header_get_msg_type(data->header, c->use_mini_header));
+ return;
}
}