From a3d5c76ee8925ef9846c72e2327674b84e3fcdb3 Mon Sep 17 00:00:00 2001
From: Olivier Fourdan <ofourdan@redhat.com>
Date: Wed, 10 Sep 2025 15:55:06 +0200
Subject: [PATCH 2/4] xkb: Make the RT_XKBCLIENT resource private
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Currently, the resource in only available to the xkb.c source file.

In preparation for the next commit, to be able to free the resources
from XkbRemoveResourceClient(), make that variable private instead.

This is related to:

CVE-2025-62230, ZDI-CAN-27545

This vulnerability was discovered by:
Jan-Niklas Sohn working with Trend Micro Zero Day Initiative

Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
(cherry picked from commit 99790a2c9205a52fbbec01f21a92c9b7f4ed1d8f)

Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2087>

CVE: CVE-2025-62230
Upstream-Status: Backport
Signed-off-by: Ross Burton <ross.burton@arm.com>
---
 include/xkbsrv.h | 2 ++
 xkb/xkb.c        | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/include/xkbsrv.h b/include/xkbsrv.h
index fbb5427e1..b2766277c 100644
--- a/include/xkbsrv.h
+++ b/include/xkbsrv.h
@@ -58,6 +58,8 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #include "inputstr.h"
 #include "events.h"
 
+extern RESTYPE RT_XKBCLIENT;
+
 typedef struct _XkbInterest {
     DeviceIntPtr dev;
     ClientPtr client;
diff --git a/xkb/xkb.c b/xkb/xkb.c
index 5131bfcdf..26d965d48 100644
--- a/xkb/xkb.c
+++ b/xkb/xkb.c
@@ -51,7 +51,7 @@ int XkbKeyboardErrorCode;
 CARD32 xkbDebugFlags = 0;
 static CARD32 xkbDebugCtrls = 0;
 
-static RESTYPE RT_XKBCLIENT;
+RESTYPE RT_XKBCLIENT = 0;
 
 /***====================================================================***/
 
-- 
2.43.0

