xserver/dix
Enrico Weigelt, metux IT consult 6a8ee31e1b dix: move props into WindowRec and fix potential NULL deref
The pointer to the window properties is currently inside the WindowOptional
structure, which may or may not exist at any given time. Thus, before accessing
those fields, at least need to check whether it exists, potentially need to
create it first.

Since a pointer is small (in relation to WindowRec) and windows having properties
is a pretty common, we can make our life much simpler here by moving the pointer
directly into WindowRec, so we don't need extra WindowOptionalRec allocation.

This also fixes an analyzer warning on potential NULL dereference issue:

| ../dix/property.c: In function ‘dixChangeWindowProperty’:
|../dix/property.c:343:37: warning: dereference of NULL ‘*pWin.optional’ [CWE-476] [-Wanalyzer-null-dereference]
|  343 |         pProp->next = pWin->optional->userProps;
|      |                       ~~~~~~~~~~~~~~^~~~~~~~~~~

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-06-12 16:34:03 +02:00
..
.gitignore Fix spelling/wording issues 2020-07-05 13:07:33 -07:00
BuiltInAtoms R6.6 is the Xorg base-line 2003-11-14 15:54:54 +00:00
atom.c dix: unexport InitAtoms() and FreeAllAtoms() 2025-06-12 16:20:15 +02:00
atom_priv.h dix: unexport InitAtoms() and FreeAllAtoms() 2025-06-12 16:20:15 +02:00
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: unexport DeliverEvents() and fix return type 2025-06-12 16:18:40 +02: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 os: move BUG_*() macros to own private header 2025-02-17 19:32:48 +00:00
cursor_priv.h dix: unexport GetSpritePosition() 2024-09-02 16:43:29 +00:00
devices.c dix: rename IsFloating() to InputDevIsFloating() 2025-06-12 16:19:40 +02:00
dispatch.c dix: drop unused SetVendorRelease() 2025-06-12 16:20:19 +02:00
dispatch.h dix: drop unnecessary check on HAVE_DIX_CONFIG_H 2024-10-10 13:38:31 +00:00
display.c dix: add getter for display name 2025-02-11 19:13:01 +01:00
dix_priv.h dix: unexport SetInputCheck() and make it inline 2025-06-12 16:20:09 +02:00
dixfonts.c dix: protect doPolyText() from potential NULL dereference 2025-06-12 16:33:57 +02: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: unexport BlockHandler() 2025-06-12 16:19:43 +02:00
enterleave.c dix: rename IsFloating() to InputDevIsFloating() 2025-06-12 16:19:40 +02: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 dix: unexport eventconvert.h functions 2024-03-11 12:26:44 +01:00
events.c panoramix: replace FOR_NSCREENS() by FOR_NSCREENS_BACKWARD(i) 2025-06-12 16:24:18 +02:00
exevents_priv.h XI: unexport XIPropToInt() and XIPropToFloat() 2025-06-12 16:25:48 +02:00
extension.c dix: drop unnecessary check on HAVE_DIX_CONFIG_H 2024-10-10 13:38:31 +00:00
gc.c dix: use dixDestroyPixmap() instead of direct driver call 2025-02-12 17:48:30 +01:00
gc_priv.h dix: unexport SetClipRects() 2024-04-15 23:10:31 +00:00
generate-atoms dix: replace AtomError() by better messages 2025-06-12 16:20:12 +02:00
gestures.c os: move BUG_*() macros to own private header 2025-02-17 19:32:48 +00:00
getevents.c dix: rename IsFloating() to InputDevIsFloating() 2025-06-12 16:19:40 +02:00
globals.c dix: add getter for display name 2025-02-11 19:13:01 +01:00
glyphcurs.c dix: use dixDestroyPixmap() instead of direct driver call 2025-02-12 17:48:30 +01:00
grabs.c dix: rename IsMaster to InputDevIsMaster() 2025-06-12 16:19:33 +02:00
input_priv.h dix: unexport LastEventTimeToggleResetAll() 2025-06-12 16:20:06 +02:00
inpututils.c dix: rename IsFloating() to InputDevIsFloating() 2025-06-12 16:19:40 +02:00
main.c dix: unexport InitAtoms() and FreeAllAtoms() 2025-06-12 16:20:15 +02:00
meson.build dix: add getter for display name 2025-02-11 19:13:01 +01:00
pixmap.c dix: use dixDestroyPixmap() instead of direct driver call 2025-02-12 17:48:30 +01:00
privates.c dix: drop unnecessary check on HAVE_DIX_CONFIG_H 2024-10-10 13:38:31 +00:00
property.c dix: move props into WindowRec and fix potential NULL deref 2025-06-12 16:34:03 +02:00
property_priv.h dix: unexport DeleteAllWindowProperties() 2024-09-02 17:50:47 +00:00
protocol.txt drop remains of DMX 2024-03-05 16:57:52 +01:00
ptrveloc.c XI: unexport XIPropToInt() and XIPropToFloat() 2025-06-12 16:25:48 +02: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 dix: unexport XREGISTRY_UNKNOWN define 2024-03-03 23:20:06 +00:00
reqhandlers_priv.h dix: unexport events related request handlers 2025-06-12 16:16:45 +02:00
resource.c dix: unexport and document MarkClientException() 2025-06-12 16:17:42 +02: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 Allow DDX to provide a main() 2013-07-23 23:56:58 +01:00
swaprep.c dix: drop unnecessary check on HAVE_DIX_CONFIG_H 2024-10-10 13:38:31 +00:00
swapreq.c dix: unexport events related request handlers 2025-06-12 16:16:45 +02:00
tables.c include: drop obsolete dixevents.h 2025-06-12 16:17:35 +02:00
touch.c dix: rename IsMaster to InputDevIsMaster() 2025-06-12 16:19:33 +02:00
window.c dix: move props into WindowRec and fix potential NULL deref 2025-06-12 16:34:03 +02:00