diff options
author | Yonit Halperin <yhalperi@redhat.com> | 2013-04-08 16:27:11 -0400 |
---|---|---|
committer | Yonit Halperin <yhalperi@redhat.com> | 2013-04-09 09:01:26 -0400 |
commit | db0a525588970859b67cf44c071c849b638f6eec (patch) | |
tree | d82c1ef370d783487648b9fe4fd393273dc8a419 | |
parent | 0c0c94b7d7898feb4bb33caf383242ef26b62d09 (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.c | 6 |
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; } } |