From 427400fcc04e09392f88282f64c58a3ae781839c Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Tue, 6 May 2025 16:42:42 +0200 Subject: [PATCH] xkb: fix NULL pointer dereference in XkbDDXLoadKeymapByNames() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In the rare case that NULL kbd is passed and also no components provided, the corresponding error message code crashes on NULL pointer dereference. | ../xkb/ddxLoad.c: In function ‘XkbDDXLoadKeymapByNames’: | ../xkb/ddxLoad.c:393:25: warning: dereference of NULL ‘keybd’ [CWE-476] [-Wanalyzer-null-dereference] | 393 | keybd->name ? keybd->name : "(unnamed keyboard)"); | | ~~~~~^~~~~~ Signed-off-by: Enrico Weigelt, metux IT consult --- xkb/ddxLoad.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xkb/ddxLoad.c b/xkb/ddxLoad.c index a231e96bf..6e9f0a1a8 100644 --- a/xkb/ddxLoad.c +++ b/xkb/ddxLoad.c @@ -389,7 +389,7 @@ XkbDDXLoadKeymapByNames(DeviceIntPtr keybd, (names->compat == NULL) && (names->symbols == NULL) && (names->geometry == NULL)) { LogMessage(X_ERROR, "XKB: No components provided for device %s\n", - keybd->name ? keybd->name : "(unnamed keyboard)"); + keybd && keybd->name ? keybd->name : "(unnamed keyboard)"); return 0; } else if (!XkbDDXCompileKeymapByNames(xkb, names, want, need,