diff --git a/server/red-qxl.cpp b/server/red-qxl.cpp index 1135fd52..2979ae61 100644 --- a/server/red-qxl.cpp +++ b/server/red-qxl.cpp @@ -267,6 +267,11 @@ void spice_qxl_destroy_surface_wait(QXLInstance *instance, uint32_t surface_id) { RedWorkerMessageDestroySurfaceWait payload; + if (surface_id != 0) { + spice_warning("Invalid surface_id != 0: %u", surface_id); + return; + } + payload.surface_id = surface_id; instance->st->send_message(payload); } diff --git a/server/red-worker.cpp b/server/red-worker.cpp index 912b7d55..3880531b 100644 --- a/server/red-worker.cpp +++ b/server/red-worker.cpp @@ -364,8 +364,6 @@ handle_dev_del_memslot(RedWorker* worker, RedWorkerMessageDelMemslot* msg) static void handle_dev_destroy_surface_wait(RedWorker* worker, RedWorkerMessageDestroySurfaceWait* msg) { - spice_return_if_fail(msg->surface_id == 0); - flush_all_qxl_commands(worker); display_channel_destroy_surface_wait(worker->display_channel, msg->surface_id); }