Xext: xtest: extra NULL checks

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 <info@metux.net>
This commit is contained in:
Enrico Weigelt, metux IT consult 2025-05-06 16:54:07 +02:00
parent c4642f2632
commit 6b7d35f71c

View File

@ -384,7 +384,7 @@ ProcXTestFakeInput(ClientPtr client)
switch (type) { switch (type) {
case KeyPress: case KeyPress:
case KeyRelease: case KeyRelease:
if (!dev->key) if ((!dev) || (!dev->key))
return BadDevice; return BadDevice;
if (ev->u.u.detail < dev->key->xkbInfo->desc->min_key_code || if (ev->u.u.detail < dev->key->xkbInfo->desc->min_key_code ||
@ -396,7 +396,7 @@ ProcXTestFakeInput(ClientPtr client)
need_ptr_update = 0; need_ptr_update = 0;
break; break;
case MotionNotify: case MotionNotify:
if (!dev->valuator) if (!dev || !dev->valuator)
return BadDevice; return BadDevice;
if (!(extension || ev->u.keyButtonPointer.root == None)) { if (!(extension || ev->u.keyButtonPointer.root == None)) {
@ -427,7 +427,7 @@ ProcXTestFakeInput(ClientPtr client)
break; break;
case ButtonPress: case ButtonPress:
case ButtonRelease: case ButtonRelease:
if (!dev->button) if (!dev || !dev->button)
return BadDevice; return BadDevice;
if (!ev->u.u.detail || ev->u.u.detail > dev->button->numButtons) { 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); 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); (*dev->sendEventsProc) (dev, type, ev->u.u.detail, flags, &mask);
if (need_ptr_update) if (need_ptr_update)