From 6b7d35f71c6cadb28485320133c4a1c534619502 Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Tue, 6 May 2025 16:54:07 +0200 Subject: [PATCH] Xext: xtest: extra NULL checks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Even though these probably never happen, it's still better having some (really cheap) extra checks, just in case. | ../Xext/xtest.c: In function ‘ProcXTestFakeInput’: | ../Xext/xtest.c:385:17: warning: dereference of NULL ‘dev’ [CWE-476] [-Wanalyzer-null-dereference] | 385 | if (!dev->key) | | ~~~^~~~~ | ../Xext/xtest.c:442:12: warning: dereference of NULL ‘dev’ [CWE-476] [-Wanalyzer-null-dereference] | 442 | if (dev->sendEventsProc) | | ~~~^~~~~~~~~~~~~~~~ Signed-off-by: Enrico Weigelt, metux IT consult --- Xext/xtest.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Xext/xtest.c b/Xext/xtest.c index 74b00d433..f7e4bd7b1 100644 --- a/Xext/xtest.c +++ b/Xext/xtest.c @@ -384,7 +384,7 @@ ProcXTestFakeInput(ClientPtr client) switch (type) { case KeyPress: case KeyRelease: - if (!dev->key) + if ((!dev) || (!dev->key)) return BadDevice; if (ev->u.u.detail < dev->key->xkbInfo->desc->min_key_code || @@ -396,7 +396,7 @@ ProcXTestFakeInput(ClientPtr client) need_ptr_update = 0; break; case MotionNotify: - if (!dev->valuator) + if (!dev || !dev->valuator) return BadDevice; if (!(extension || ev->u.keyButtonPointer.root == None)) { @@ -427,7 +427,7 @@ ProcXTestFakeInput(ClientPtr client) break; case ButtonPress: case ButtonRelease: - if (!dev->button) + if (!dev || !dev->button) return BadDevice; if (!ev->u.u.detail || ev->u.u.detail > dev->button->numButtons) { @@ -441,7 +441,7 @@ ProcXTestFakeInput(ClientPtr client) valuator_mask_set_range(&mask, firstValuator, numValuators, valuators); - if (dev->sendEventsProc) + if (dev && dev->sendEventsProc) (*dev->sendEventsProc) (dev, type, ev->u.u.detail, flags, &mask); if (need_ptr_update)