diff --git a/server/red_worker.c b/server/red_worker.c index 96c0f143..2b23ffdb 100644 --- a/server/red_worker.c +++ b/server/red_worker.c @@ -9802,7 +9802,7 @@ static void guest_set_client_capabilities(RedWorker *worker) DisplayChannelClient *dcc; RedChannelClient *rcc; RingItem *link, *next; - uint8_t caps[58] = { 0 }; + uint8_t caps[SPICE_CAPABILITIES_SIZE] = { 0 }; int caps_available[] = { SPICE_DISPLAY_CAP_SIZED_STREAM, SPICE_DISPLAY_CAP_MONITORS_CONFIG, diff --git a/server/spice-qxl.h b/server/spice-qxl.h index dd49a860..e1f14e77 100644 --- a/server/spice-qxl.h +++ b/server/spice-qxl.h @@ -24,6 +24,10 @@ #include "spice-core.h" +#ifndef SPICE_CAPABILITIES_SIZE +#define SPICE_CAPABILITIES_SIZE (sizeof(((QXLRom*)0)->client_capabilities)) +#endif + /* qxl interface */ #define SPICE_INTERFACE_QXL "qxl" @@ -175,7 +179,7 @@ struct QXLInterface { uint32_t num_updated_rects); void (*set_client_capabilities)(QXLInstance *qin, uint8_t client_present, - uint8_t caps[58]); + uint8_t caps[SPICE_CAPABILITIES_SIZE]); /* returns 1 if the interface is supported, 0 otherwise. * if monitors_config is NULL nothing is done except reporting the * return code. */