From 8651a45c9d21261d78b326c9d178651a4370b68c 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 05ac0e967..7510f27fc 100644 --- a/Xext/xtest.c +++ b/Xext/xtest.c @@ -385,7 +385,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 || @@ -397,7 +397,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)) { @@ -428,7 +428,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) { @@ -442,7 +442,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)