From: Søren Sandmann Pedersen <s...@redhat.com> Then check that we have the right version before accessing the set_client_capabilities() function. --- server/red_worker.c | 8 ++++++-- server/spice.h | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/server/red_worker.c b/server/red_worker.c index 81fffd7..3e78c63 100644 --- a/server/red_worker.c +++ b/server/red_worker.c @@ -10349,7 +10349,9 @@ static void handle_new_display_channel(RedWorker *worker, RedClient *client, Red spice_info("jpeg %s", display_channel->enable_jpeg ? "enabled" : "disabled"); spice_info("zlib-over-glz %s", display_channel->enable_zlib_glz_wrap ? "enabled" : "disabled"); - if (worker->qxl->st->qif->set_client_capabilities) { + if (worker->qxl->st->qif->base.major_version == 3 && + worker->qxl->st->qif->base.minor_version >= 2 && + worker->qxl->st->qif->set_client_capabilities) { RedChannelClient *rcc = (RedChannelClient *)dcc; uint8_t caps[58] = { 0 }; @@ -11227,7 +11229,9 @@ void handle_dev_display_disconnect(void *opaque, void *payload) spice_info("disconnect display client"); spice_assert(rcc); - if (worker->qxl->st->qif->set_client_capabilities) { + if (worker->qxl->st->qif->base.major_version == 3 && + worker->qxl->st->qif->base.minor_version >= 2 && + worker->qxl->st->qif->set_client_capabilities) { uint8_t caps[58] = { 0 }; worker->qxl->st->qif->set_client_capabilities(worker->qxl, FALSE, caps); } diff --git a/server/spice.h b/server/spice.h index 3152f8c..2b2ed36 100644 --- a/server/spice.h +++ b/server/spice.h @@ -96,7 +96,7 @@ struct SpiceCoreInterface { #define SPICE_INTERFACE_QXL "qxl" #define SPICE_INTERFACE_QXL_MAJOR 3 -#define SPICE_INTERFACE_QXL_MINOR 1 +#define SPICE_INTERFACE_QXL_MINOR 2 typedef struct QXLInterface QXLInterface; typedef struct QXLInstance QXLInstance; typedef struct QXLState QXLState; -- 1.7.4 _______________________________________________ Spice-devel mailing list Spice-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/spice-devel