XLibre Xserver
Go to file
Alan Coopersmith d10589cc09 Xi: avoid NULL pointer dereference if GetXTestDevice returns NULL
The comments in that function say "This only happens if master is a
slave device. don't do that" but static analysis doesn't respect that.

Found by Oracle Parfait 13.3:
   Null pointer dereference [null-pointer-deref]:
      Read from null pointer XTestptr
        at line 274 of Xi/xichangehierarchy.c in function 'remove_master'.
          Null pointer introduced at line 691 of Xext/xtest.c in function
	   'GetXTestDevice'.
          Function GetXTestDevice may return constant 'NULL' at line 691,
	   called at line 273 of Xi/xichangehierarchy.c in function
	   'remove_master'.
   Null pointer dereference [null-pointer-deref]:
      Read from null pointer XTestkeybd
        at line 279 of Xi/xichangehierarchy.c in function 'remove_master'.
          Null pointer introduced at line 691 of Xext/xtest.c in function
	   'GetXTestDevice'.
          Function GetXTestDevice may return constant 'NULL' at line 691,
	   called at line 278 of Xi/xichangehierarchy.c in function
	   'remove_master'.

Fixes: 0814f511d ("input: store the master device's ID in the devPrivate for XTest devices.")
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
.gitlab-ci CI: update meson from 0.56.2 (bullseye) to 1.0.0 (bullseye-backports) 2024-09-09 07:47:32 -07:00
Xext dix: unexport Ones() 2024-10-26 16:35:57 +00:00
Xi Xi: avoid NULL pointer dereference if GetXTestDevice returns NULL 2024-10-28 05:38:25 +00:00
composite dix: unexport Ones() 2024-10-26 16:35:57 +00:00
config drop obsolete HAVE_DIX_CONFIG_H 2024-10-10 13:38:31 +00:00
damageext drop obsolete HAVE_DIX_CONFIG_H 2024-10-10 13:38:31 +00:00
dbe drop obsolete HAVE_DIX_CONFIG_H 2024-10-10 13:38:31 +00:00
dix dix: Use __builtin_popcountl if available to replace Ones() 2024-10-26 10:04:13 -07:00
doc dix: move colormap flags into colormap_priv.h and rename them 2024-09-01 22:06:50 +00:00
dri3 treewide: replace xnfalloc() calls to XNFalloc() 2024-07-26 23:41:33 +00:00
exa drop obsolete HAVE_DIX_CONFIG_H 2024-10-10 13:38:31 +00:00
fb dix: unexport Ones() 2024-10-26 16:35:57 +00:00
glamor drop obsolete HAVE_DIX_CONFIG_H 2024-10-10 13:38:31 +00:00
glx drop obsolete HAVE_DIX_CONFIG_H 2024-10-10 13:38:31 +00:00
hw xfree86: avoid memory leak on realloc failure 2024-10-28 05:38:25 +00:00
include dix: unexport Ones() 2024-10-26 16:35:57 +00:00
man Xserver.man: Note that -byteswappedclients is the default in this release 2024-03-23 10:27:03 -07:00
mi mi: misprite.h: drop unnecessary extern on functions 2024-10-10 14:44:52 +00:00
miext drop obsolete HAVE_DIX_CONFIG_H 2024-10-10 13:38:31 +00:00
os dix: Use __builtin_popcountl if available to replace Ones() 2024-10-26 10:04:13 -07:00
present build: Move epoll dependency check 2024-09-02 11:52:26 +00:00
pseudoramiX pseudoramix: replace PseudoramiXTrace & PseudoramiXDebug by LogMessageVerb 2024-10-10 18:59:40 +00:00
randr randr: fix wrong call to RRGetScreenResources() in swapped case 2024-10-10 20:59:35 +00:00
record drop obsolete HAVE_DIX_CONFIG_H 2024-10-10 13:38:31 +00:00
render dix: unexport Ones() 2024-10-26 16:35:57 +00:00
test dix: unexport non-public functions from dixgrabs.h and document prototypes 2024-10-10 13:50:57 +00:00
xfixes drop obsolete HAVE_DIX_CONFIG_H 2024-10-10 13:38:31 +00:00
xkb dix: unexport Ones() 2024-10-26 16:35:57 +00:00
.appveyor.yml appveyor: Add libxcvt build dep 2021-11-04 13:03:25 +00:00
.dir-locals.el .dir-locals.el: Add missing final newline 2019-10-01 17:05:28 +00:00
.gitignore Clean up the .gitignore file 2024-01-12 00:50:24 +00:00
.gitlab-ci.yml ci: reduce nolibdecor build to xwayland only 2024-09-10 13:49:30 +02:00
.mailmap Add a .mailmap file to canonicalize author names and emails 2023-03-15 18:10:51 +00:00
.travis.yml travis: Add OSX meson build to matrix 2019-05-02 15:42:58 +00:00
COPYING modesetting: Merge modesetting's COPYING into the xserver's. 2014-09-15 12:46:02 -07:00
README.md Fix spelling/wording issues 2020-07-05 13:07:33 -07:00
meson.build meson: list required version of xproto headers in xorg-server.pc 2024-09-09 07:48:07 -07:00
meson_options.txt os: drop SUN-DES-1 authentication 2024-06-18 00:52:11 +00:00
xorg-server.m4 xorg-server.m4: just all cflags instead of just sdkdir 2018-09-20 20:12:24 +01:00
xorg-server.pc.in xfree86: link modules against Xorg symbols on Cygwin 2012-04-05 21:57:07 -05:00
xserver.ent.in doc: relocate xserver.ent in the package root directory 2011-05-14 11:22:26 -07:00

X Server

The X server accepts requests from client applications to create windows, which are (normally rectangular) "virtual screens" that the client program can draw into.

Windows are then composed on the actual screen by the X server (or by a separate composite manager) as directed by the window manager, which usually communicates with the user via graphical controls such as buttons and draggable titlebars and borders.

For a comprehensive overview of X Server and X Window System, consult the following article: https://en.wikipedia.org/wiki/X_server

All questions regarding this software should be directed at the Xorg mailing list:

https://lists.freedesktop.org/mailman/listinfo/xorg

The primary development code repository can be found at:

https://gitlab.freedesktop.org/xorg/xserver

For patch submission instructions, see:

https://www.x.org/wiki/Development/Documentation/SubmittingPatches

As with other projects hosted on freedesktop.org, X.Org follows its Code of Conduct, based on the Contributor Covenant. Please conduct yourself in a respectful and civilized manner when using the above mailing lists, bug trackers, etc:

https://www.freedesktop.org/wiki/CodeOfConduct