Alan Coopersmith
b65eea43dd
dix: limit checks to MAX_VALUATORS when generating Xi events
...
Previously, it was looping through sizeof(ev->valuators.mask) * 8
valuators, where valuators.mask is defined as an array of
(MAX_VALUATORS + 7) / 8 entries. Since MAX_VALUATORS is defined as 36,
this made it actually loop through 40 entries. The last 4 bits in this
array should never be set, so we should never access memory outside the
bounds of the arrays defined to be exactly MAX_VALUATORS in length, but
we can make the static analyzer happier and not waste time checking bits
that should never be set.
Found by Oracle Parfait 13.3 static analyzer:
Read outside array bounds [read-outside-array-bounds]:
In array dereference of ev->valuators.data[i] with index i
Array size is 36 elements (of 8 bytes each), index >= 0 and index <= 39
at line 741 of dix/eventconvert.c in function 'eventToDeviceEvent'.
Read outside array bounds [read-outside-array-bounds]:
In array dereference of ev->valuators.data[i] with index i
Array size is 36 elements (of 8 bytes each), index >= 0 and index <= 39
at line 808 of dix/eventconvert.c in function 'eventToRawEvent'.
Read outside array bounds [read-outside-array-bounds]:
In array dereference of ev->valuators.data_raw[i] with index i
Array size is 36 elements (of 8 bytes each), index >= 0 and index <= 39
at line 809 of dix/eventconvert.c in function 'eventToRawEvent'.
Fixes: b2ba77bac ("dix: add EventToXI2 and GetXI2Type.")
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1730 >
2024-10-28 05:38:25 +00:00
..
.gitignore
atom.c
dix: drop unnecessary check on HAVE_DIX_CONFIG_H
2024-10-10 13:38:31 +00:00
buildatoms
BuiltInAtoms
callback_priv.h
dix: fix duplicate typedef of CallbackListPtr
2024-09-01 22:32:49 +00:00
closestr.h
dix: move closestr.h into dix directory
2024-04-16 01:42:39 +00:00
color.c
dix: drop unnecessary check on HAVE_DIX_CONFIG_H
2024-10-10 13:38:31 +00:00
colormap.c
dix: drop unnecessary check on HAVE_DIX_CONFIG_H
2024-10-10 13:38:31 +00:00
colormap_priv.h
dix: move colormap flags into colormap_priv.h and rename them
2024-09-01 22:06:50 +00:00
cursor.c
dix: drop unnecessary check on HAVE_DIX_CONFIG_H
2024-10-10 13:38:31 +00:00
cursor_priv.h
dix: unexport GetSpritePosition()
2024-09-02 16:43:29 +00:00
devices.c
dix: Use __builtin_popcountl if available to replace Ones()
2024-10-26 10:04:13 -07:00
dispatch.c
os: split off internal definitions from client.h
2024-10-10 13:45:29 +00:00
dispatch.h
dix: drop unnecessary check on HAVE_DIX_CONFIG_H
2024-10-10 13:38:31 +00:00
dix_priv.h
dix: unexport fields from opaque.h not used by modules/drivers
2024-06-23 21:19:27 +00:00
dixfonts.c
dix: drop unnecessary check on HAVE_DIX_CONFIG_H
2024-10-10 13:38:31 +00:00
dixgrabs_priv.h
dix: unexport non-public functions from dixgrabs.h and document prototypes
2024-10-10 13:50:57 +00:00
dixstruct_priv.h
include: move private defs to dixstruct_priv.h
2024-04-30 00:47:38 +00:00
dixutils.c
dix: drop unnecessary check on HAVE_DIX_CONFIG_H
2024-10-10 13:38:31 +00:00
enterleave.c
dix: fix button offset when generating DeviceButtonStateNotify events
2024-10-28 05:38:25 +00:00
enterleave.h
dix: drop unnecessary check on HAVE_DIX_CONFIG_H
2024-10-10 13:38:31 +00:00
eventconvert.c
dix: limit checks to MAX_VALUATORS when generating Xi events
2024-10-28 05:38:25 +00:00
eventconvert.h
events.c
dix: unexport non-public functions from dixgrabs.h and document prototypes
2024-10-10 13:50:57 +00:00
exevents_priv.h
include: move private definitions out of exevents.h
2024-04-30 00:47:38 +00:00
extension.c
dix: drop unnecessary check on HAVE_DIX_CONFIG_H
2024-10-10 13:38:31 +00:00
gc.c
dix: unexport Ones()
2024-10-26 16:35:57 +00:00
gc_priv.h
gestures.c
dix: unexport non-public functions from dixgrabs.h and document prototypes
2024-10-10 13:50:57 +00:00
getevents.c
dix: drop unnecessary check on HAVE_DIX_CONFIG_H
2024-10-10 13:38:31 +00:00
globals.c
dix: drop unnecessary check on HAVE_DIX_CONFIG_H
2024-10-10 13:38:31 +00:00
glyphcurs.c
dix: drop unnecessary check on HAVE_DIX_CONFIG_H
2024-10-10 13:38:31 +00:00
grabs.c
dix: unexport non-public functions from dixgrabs.h and document prototypes
2024-10-10 13:50:57 +00:00
initatoms.c
dix: drop unnecessary check on HAVE_DIX_CONFIG_H
2024-10-10 13:38:31 +00:00
input_priv.h
include: move private definitions out of input.h
2024-09-01 17:59:23 +00:00
inpututils.c
dix: drop unnecessary check on HAVE_DIX_CONFIG_H
2024-10-10 13:38:31 +00:00
main.c
os: split off internal definitions from client.h
2024-10-10 13:45:29 +00:00
meson.build
os: move over osLookupColor to dix
2024-04-15 16:19:30 -07:00
pixmap.c
dix: drop unnecessary check on HAVE_DIX_CONFIG_H
2024-10-10 13:38:31 +00:00
privates.c
dix: drop unnecessary check on HAVE_DIX_CONFIG_H
2024-10-10 13:38:31 +00:00
property.c
dix: drop unnecessary check on HAVE_DIX_CONFIG_H
2024-10-10 13:38:31 +00:00
property_priv.h
dix: unexport DeleteAllWindowProperties()
2024-09-02 17:50:47 +00:00
protocol.txt
ptrveloc.c
dix: drop unnecessary check on HAVE_DIX_CONFIG_H
2024-10-10 13:38:31 +00:00
ptrveloc_priv.h
dix: fix duplicate typedef of MotionTracker and *MotionTrackerPtr
2024-09-01 22:32:49 +00:00
region.c
dix: drop unnecessary check on HAVE_DIX_CONFIG_H
2024-10-10 13:38:31 +00:00
registry.c
dix: drop unnecessary check on HAVE_DIX_CONFIG_H
2024-10-10 13:38:31 +00:00
registry_priv.h
resource.c
dix: unexport non-public functions from dixgrabs.h and document prototypes
2024-10-10 13:50:57 +00:00
screenint_priv.h
dix: fix duplicate typedef of *ScreenPtr
2024-09-01 22:32:49 +00:00
selection.c
dix: drop unnecessary check on HAVE_DIX_CONFIG_H
2024-10-10 13:38:31 +00:00
stubmain.c
swaprep.c
dix: drop unnecessary check on HAVE_DIX_CONFIG_H
2024-10-10 13:38:31 +00:00
swapreq.c
dix: drop unnecessary check on HAVE_DIX_CONFIG_H
2024-10-10 13:38:31 +00:00
tables.c
dix: drop unnecessary check on HAVE_DIX_CONFIG_H
2024-10-10 13:38:31 +00:00
touch.c
dix: unexport non-public functions from dixgrabs.h and document prototypes
2024-10-10 13:50:57 +00:00
window.c
os: unexport client id retrieval functions
2024-10-10 13:45:29 +00:00