From 77a67387b4507b2859dadc32604221a138f2a700 Mon Sep 17 00:00:00 2001
From: Jakob Bornecrantz <jakob@collabora.com>
Date: Wed, 11 Aug 2021 18:09:52 +0100
Subject: [PATCH] ipc/server: Paranoia

---
 src/xrt/ipc/server/ipc_server_handler.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/xrt/ipc/server/ipc_server_handler.c b/src/xrt/ipc/server/ipc_server_handler.c
index 9edb7afc0..0aa1a3800 100644
--- a/src/xrt/ipc/server/ipc_server_handler.c
+++ b/src/xrt/ipc/server/ipc_server_handler.c
@@ -716,11 +716,19 @@ ipc_handle_swapchain_create(volatile struct ipc_client_state *ics,
 	assert(xsc->num_images <= IPC_MAX_SWAPCHAIN_HANDLES);
 	assert(xsc->num_images <= max_num_handles);
 
-	*out_id = index;
+	// Paranoia.
+	size_t size = xscn->images[0].size;
+	bool use_dedicated_allocation = xscn->images[0].use_dedicated_allocation;
+	for (size_t i = 1; i < xsc->num_images; i++) {
+		assert(size == xscn->images[0].size);
+		assert(use_dedicated_allocation == xscn->images[0].use_dedicated_allocation);
+	}
+
+	// Assuming all images allocated in the same swapchain have the same allocation requirements.
 	*out_size = xscn->images[0].size;
-	*out_num_images = xsc->num_images;
-	// assuming all images allocated in the same swapchain have the same allocation requirements
 	*out_use_dedicated_allocation = xscn->images[0].use_dedicated_allocation;
+	*out_id = index;
+	*out_num_images = xsc->num_images;
 
 	// Setup the fds.
 	*out_num_handles = xsc->num_images;