Avoid to register multiple interface with the same ID. This would results in issue as 2 channels would have same (channel_type, channel_id) which should be unique. Qemu always allocate QXL interface with IDs from 0. Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> --- server/reds.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/server/reds.c b/server/reds.c index fbc21f7be..2e5c69e60 100644 --- a/server/reds.c +++ b/server/reds.c @@ -3378,6 +3378,14 @@ SPICE_GNUC_VISIBLE int spice_server_add_interface(SpiceServer *reds, } qxl = SPICE_UPCAST(QXLInstance, sin); + if (qxl->id < 0) { + spice_warning("invalid QXL ID"); + return -1; + } + if (reds_find_channel(reds, SPICE_CHANNEL_DISPLAY, qxl->id)) { + spice_warning("QXL ID already allocated"); + return -1; + } red_qxl_init(reds, qxl); reds->qxl_instances = g_list_prepend(reds->qxl_instances, qxl); -- 2.20.1 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel