From f0eb8cc57dc10cbe3fa970b5b3f16bea378d9637 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Date: Tue, 7 Nov 2023 17:01:53 +0400 Subject: [PATCH] Warn on invalid surface_id at qxl_spice_destroy_surface_wait() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes: https://gitlab.freedesktop.org/spice/spice/-/issues/83 Signed-off-by: Marc-André Lureau Acked-by: Frediano Ziglio --- server/red-qxl.cpp | 5 +++++ server/red-worker.cpp | 2 -- 2 files changed, 5 insertions(+), 2 deletions(-) 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); }