stefan11111
dc39eda42b
treewide: Move the dri2 extension to Xext and use it for all X servers
...
This is needed to get proton working in Xfbdev, but is probably useful in other places too.
Xephyr has some unrelated issues regaring Xinput, so steam doesn't work there.
Signed-off-by: stefan11111 <stefan11111@shitposting.expert >
2026-01-02 17:51:43 +01:00
Enrico Weigelt, metux IT consult
05fe0b519f
Xext: selinux: use REQUEST_HEAD_STRUCT and REQUEST_FIELD_* macros
...
Use the new macros to make request struct parsing / field swapping
much easier.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2026-01-01 13:23:22 +01:00
Enrico Weigelt, metux IT consult
8ff401cde1
Xext: xres: use REQUEST_HEAD_STRUCT and REQUEST_FIELD_* macros
...
Use the new macros to make request struct parsing / field swapping
much easier.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2026-01-01 13:23:22 +01:00
Enrico Weigelt, metux IT consult
a0cd40d5af
Xext: xvmc: use REQUEST_HEAD_STRUCT and REQUEST_FIELD_* macros
...
Use the new macros to make request struct parsing / field swapping
much easier.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2026-01-01 13:23:22 +01:00
Enrico Weigelt, metux IT consult
f122e2bb86
Xext: shm: use REQUEST_HEAD_STRUCT and REQUEST_FIELD_* macros
...
Use the new macros to make request struct parsing / field swapping
much easier.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2026-01-01 13:23:22 +01:00
Enrico Weigelt, metux IT consult
dcb9329b37
Xext: saver: use REQUEST_HEAD_STRUCT and REQUEST_FIELD_* macros
...
Use the new macros to make request struct parsing / field swapping
much easier.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2026-01-01 13:23:22 +01:00
Enrico Weigelt, metux IT consult
2a6b886563
Xext: dpms: use REQUEST_HEAD_STRUCT and REQUEST_FIELD_* macros
...
Use the new macros to make request struct parsing / field swapping
much easier.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2026-01-01 13:23:22 +01:00
b-aaz
8368df64d1
Xext: xf86bigfont: Include osdep.h for OsSignal.
...
osdep.h holds the definition for OsSignal, and it was not included in
xf86bigfont which used it. This lead to build errors on Cygwin.
Signed-off-by: b-aaz <b-aazbsd@proton.me >
2025-12-21 12:59:03 +01:00
b-aaz
7f7efe8195
Revert 9a82f5c, bring back Cygwin support.
...
Brought back the code removed in that commit so that we can bring back
Cygwin support.
Small changes are done in the process of resolving conflicts against the
current head.
Some checks have not been reverted, because they were not necessary
anymore.
Signed-off-by: b-aaz <b-aazbsd@proton.me >
2025-12-21 12:59:03 +01:00
Enrico Weigelt, metux IT consult
9bd66fc97d
Xext: security: use REQUEST_HEAD_STRUCT and REQUEST_FIELD_* macros
...
Use the new macros to make request struct parsing / field swapping
much easier.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-12-21 12:04:33 +01:00
Enrico Weigelt, metux IT consult
e85db86ced
Xext: damage: use REQUEST_HEAD_STRUCT and REQUEST_FIELD_* macros
...
Use the new macros to make request struct parsing / field swapping
much easier.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-12-21 12:01:33 +01:00
Enrico Weigelt, metux IT consult
ec973853c9
Xext: xtest: use REQUEST_HEAD_STRUCT and REQUEST_FIELD_* macros
...
Use the new macros to make request struct parsing / field swapping
much easier.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-12-21 11:57:12 +01:00
Enrico Weigelt, metux IT consult
6f7aa46c51
Xext: geext: use REQUEST_HEAD_STRUCT and REQUEST_FIELD_* macros
...
Use the new macros to make request struct parsing / field swapping
much easier.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-12-21 11:54:29 +01:00
Enrico Weigelt, metux IT consult
2e6a9a1fbc
Xext: bigreq: use REQUEST_HEAD_STRUCT and REQUEST_FIELD_* macros
...
Use the new macros to make request struct parsing / field swapping
much easier.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-12-21 11:54:12 +01:00
Enrico Weigelt, metux IT consult
7b15c8a9b4
xext: xvdisp: fix printf format
...
> ../Xext/xvdisp.c: In function ‘ProcXvListImageFormats’:
> ../Xext/xvdisp.c:1017:81: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 3 has type ‘size_t’ {aka ‘unsigned int’} [-Wformat=]
> 1017 | LogMessage(X_WARNING, "ProcXvListImageFormats() payload_len mismatch: %ld but shoud be %d\n",
> | ~~^
> | |
> | long int
> | %d
> 1018 | rpcbuf.wpos, (pPort->pAdaptor->nImages*sz_xvImageFormatInfo));
> | ~~~~~~~~~~~
> | |
> | size_t {aka unsigned int}
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-12-11 10:28:49 +01:00
Enrico Weigelt, metux IT consult
980385e2ec
xext: namespace: fix printf format string
...
../Xext/namespace/hook-init-rootwindow.c: In function ‘hookInitRootWindow’:
../Xext/namespace/hook-init-rootwindow.c:38:21: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 3 has type ‘XID’ {aka ‘long unsigned int’} [-Wformat=]
38 | XNS_LOG("<%s> actual root 0x%0" PRIx32 "\n", walk->name, walk->rootWindow->drawable.id);
| ^~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| XID {aka long unsigned int}
../Xext/namespace/namespace.h:71:50: note: in definition of macro ‘XNS_LOG’
71 | #define XNS_LOG(...) do { printf("XNS "); printf(__VA_ARGS__); } while (0)
| ^~~~~~~~~~~
../Xext/namespace/hook-init-rootwindow.c:38:43: note: format string is defined here
38 | XNS_LOG("<%s> actual root 0x%0" PRIx32 "\n", walk->name, walk->rootWindow->drawable.id);
| ~~^
| |
| unsigned int
| %0lx
../Xext/namespace/hook-init-rootwindow.c:70:17: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 3 has type ‘XID’ {aka ‘long unsigned int’} [-Wformat=]
70 | XNS_LOG("<%s> virtual root 0x%0" PRIx32 "\n", walk->name, walk->rootWindow->drawable.id);
| ^~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| XID {aka long unsigned int}
../Xext/namespace/namespace.h:71:50: note: in definition of macro ‘XNS_LOG’
71 | #define XNS_LOG(...) do { printf("XNS "); printf(__VA_ARGS__); } while (0)
| ^~~~~~~~~~~
../Xext/namespace/hook-init-rootwindow.c:70:40: note: format string is defined here
70 | XNS_LOG("<%s> virtual root 0x%0" PRIx32 "\n", walk->name, walk->rootWindow->drawable.id);
| ~~^
| |
| unsigned int
| %0lx
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-12-10 19:58:21 +01:00
Enrico Weigelt, metux IT consult
e097ea8a83
Xext: xf86bigfont: add missing include of os/osdep.h
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-12-10 14:53:52 +01:00
Enrico Weigelt, metux IT consult
b08b8d6256
namespace: hook-resource: fix printf formats
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-12-10 11:09:48 +01:00
Enrico Weigelt, metux IT consult
090c68e13d
Xext: consistenly name reply structs "reply" instead of "rep"
...
Preparation for future use of generic reply assembly macros.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-12-03 14:29:29 +01:00
Enrico Weigelt, metux IT consult
33729b1361
include: windowstr.h: unexport w*() macros
...
These aren't used by any drivers, so no need to keep them public.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-11-27 19:54:42 +01:00
Enrico Weigelt, metux IT consult
9b8d7d1eb9
treewide: don't include <region.h> anymore
...
Nothing in there that we need, include <regionstr.h> instead.
But keeping the file in place, until all external consumer have
been migrated.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-11-27 19:27:27 +01:00
Enrico Weigelt, metux IT consult
bddf4ae8e8
xfree86: move over xf86vidmode extension to hw/xfree86
...
This extension is private to the xfree86 DDX, no other one supports it.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-11-27 14:03:37 +01:00
Enrico Weigelt, metux IT consult
b7e9544318
Xext: xvmc: drop dead SHM code path
...
Xvmc isn't using SHM for over 20 years now. There's still a code path for it
that could be enabled explicitly by manually setting HAS_XVMCSHM, but no
indication whatsoever that this ever has been done.
Considering that Xvmc in general already is obsolete for very long time now,
we can safely assume this code path is really dead and can be removed.
Fixes: 9a26d6f39e
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-11-27 13:50:11 +01:00
Enrico Weigelt, metux IT consult
c503343a6b
Xext: Xvmc: drop XvMCScreenKey macro
...
Directly use the actual field instead.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-11-27 13:47:59 +01:00
Enrico Weigelt, metux IT consult
85fae9bffb
dix: inline SProcAllocColor()
...
Now that we have untwisted Xinerama side, it's trivial to inline
the few lines for byte-swapping into the actual handlers.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-11-27 13:46:37 +01:00
Enrico Weigelt, metux IT consult
fda3695872
os: move MILLI_PER_MIN and MILLI_PER_SECOND to osdep.h
...
Not needed in public SDK, so move them into a private header.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-11-27 11:58:45 +01:00
Herman Semenov
50037a450d
Xext: remove excess dobule-check pointer (IsSystemCounter already have)
2025-11-26 16:47:14 +01:00
Mike Gelfand
d7e0b9e5c2
xext: move include guards up to wrap the whole file
...
See: https://gcc.gnu.org/onlinedocs/cppinternals/Guard-Macros.html
Signed-off-by: Mike Gelfand <mikedld@mikedld.com >
2025-11-21 15:20:11 +01:00
Enrico Weigelt, metux IT consult
0bfa59e601
Xext: sleepuntil: drop obsolete support for internal server reset
...
Not used anymore.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-11-20 19:26:00 +01:00
Enrico Weigelt, metux IT consult
f0347e249c
Xext: panoramiX: drop server reset support
...
Not needed anymore.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-11-20 19:22:55 +01:00
Enrico Weigelt, metux IT consult
44077ee11c
dix: unexport screenIsSaved and HasSaverWindow()
...
These aren't used by any external drivers, so no need to keep them public.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-11-20 17:52:23 +01:00
Enrico Weigelt, metux IT consult
b0ac921156
dix: unexport GrabInProgress
...
Only internally within OS layer and screen saver logic,
so no need to keep it exported.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-11-20 17:42:29 +01:00
Enrico Weigelt, metux IT consult
cf105bc990
dix/Xinerama: untwist X_AllocColor request handling
...
Instead of internally faking requests, factor out the actual logic
into separate function, which is getting everything it needs as
parameters, so no need to fiddle with request buffer anymore.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-11-03 17:24:24 +01:00
Enrico Weigelt, metux IT consult
0fbb681fce
treewide: use helper dixGetScreenPtr() for retrieving ScreenPtr's
...
Instead of directly accessing the global screenInfo.screens[] array,
let everybody go through a little inline helper. This one also checks
for array bounds - if the screen doesn't exist, return NULL.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-10-30 09:44:24 +01:00
stefan11111
5b8ab55702
shm: Don't mark the globally-initialized privates as uninitialized in a CloseScreen hook.
...
No need to mark anything, because duplicate dixRegisterPrivateKey() calls with same parameters are perfectly valid.
See: https://github.com/X11Libre/xserver/pull/1300
Fixes: https://github.com/X11Libre/xserver/commit/d220a0a9f0473c15d5001f4730613b482eb0e39
Signed-off-by: stefan11111 <stefan11111@shitposting.expert >
2025-10-29 11:23:33 +01:00
Enrico Weigelt, metux IT consult
04d4986004
dix: split ProcCreateWindow() into upper and lower half
...
In order to reduce complexity of wrapped core request handlers with PanoramiX,
split the ProcCreateWindow() function into two pieces: the upper half is the
usual (non-PanoramiX) handler, while the lower one is what's called by both
the usual handler, as well as the PanoramiX' one.
We're already passing in the request parameters as separate pointers, so
follow-up commits can easily change PanoramiX handler to not tweaking the
request buffer directly anymore. Another one is letting PanoramiXCreateWindow()
be called by ProcCreateWindow explicitly (when enabled), so we don't need to
wrap the core request proc vector anymore. Once that's done, the swapping can
also be moved into ProcCreateWindow().
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-10-29 11:03:19 +01:00
stefan11111
d220a0a9f0
shm: Fix segfault when the last X client closes
...
Fixes: https://github.com/X11Libre/xserver/pull/1236
Signed-off-by: stefan11111 <stefan11111@shitposting.expert >
2025-10-27 09:27:52 +01:00
Enrico Weigelt, metux IT consult
7a0efe7da5
xv: use embedded private instead of pointer
...
The private struct is pretty small and it needs to be allocated anyways,
so save an extra allocation by directly embedding it.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-10-26 13:57:49 +01:00
Enrico Weigelt, metux IT consult
fc14d32a1a
dix: replace XACE_SCREEN_ACCESS by direct callback
...
Replace complicated xace hook by simple and cheap callback.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-10-22 13:53:25 +02:00
Enrico Weigelt, metux IT consult
38eedc3de5
Xext: shm: move ShmDescRec definition into shm.c
...
Only used inside shm.c, not anywhere else, so no need to keep it
in a public header file.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-10-21 20:36:44 +02:00
Enrico Weigelt, metux IT consult
a2068d6662
Xext: shm: drop obsolete ShmScreenClose()
...
Since it's now doing nothing more than unhooking itself, we really
don't need it anymore.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-10-21 13:53:41 +02:00
Alan Coopersmith
238c1ccf4b
Xext/xtest: avoid null dereference in ProcXTestFakeInput()
...
Reported in https://gitlab.freedesktop.org/xorg/xserver/-/issues/1817:
xwayland-24.1.6/redhat-linux-build/../Xext/xtest.c:383:14: warning[-Wanalyzer-null-dereference]: dereference of NULL ‘dev’
xwayland-24.1.6/redhat-linux-build/../Xext/xtest.c:348:9: release_memory: ‘dev’ is NULL
xwayland-24.1.6/redhat-linux-build/../Xext/xtest.c:383:14: danger: dereference of NULL ‘dev’
xwayland-24.1.6/redhat-linux-build/../Xext/xtest.c:395:14: warning[-Wanalyzer-null-dereference]: dereference of NULL ‘dev’
xwayland-24.1.6/redhat-linux-build/../Xext/xtest.c:348:9: release_memory: ‘dev’ is NULL
xwayland-24.1.6/redhat-linux-build/../Xext/xtest.c:395:14: danger: dereference of NULL ‘dev’
xwayland-24.1.6/redhat-linux-build/../Xext/xtest.c:426:14: warning[-Wanalyzer-null-dereference]: dereference of NULL ‘dev’
xwayland-24.1.6/redhat-linux-build/../Xext
/xtest.c:348:9: release_memory: ‘dev’ is NULL
xwayland-24.1.6/redhat-linux-build/../Xext/xtest.c:426:14: danger: dereference of NULL ...
2025-10-21 13:02:04 +02:00
Alan Coopersmith
640a9cf51e
Xext/xselinux: avoid memory leak in SELinuxAtomToSID()
...
Reported in https://gitlab.freedesktop.org/xorg/xserver/-/issues/1817 :
xwayland-24.1.6/redhat-linux-build/../Xext/xselinux_label.c:142:13: warning[-Wanalyzer-malloc-leak]: leak of ‘rec’
xwayland-24.1.6/redhat-linux-build/../Xext/xselinux_label.c:133:1: enter_function: entry to ‘SELinuxAtomToSID’
xwayland-24.1.6/redhat-linux-build/../Xext/xselinux_label.c:141:15: acquire_memory: allocated here
xwayland-24.1.6/redhat-linux-build/../Xext/xselinux_label.c:69:12: branch_true: following ‘true’ branch...
xwayland-24.1.6/redhat-linux-build/../Xext/xselinux_label.c:142:13: danger: ‘rec’ leaks here; was allocated at [(2)](sarif:/runs/0/results/0/codeFlows/0/threadFlows/0/locations/1)
140| if (!rec) {
141| rec = calloc(1, sizeof(SELinuxAtomRec));
142|-> if (!rec || !SELinuxArraySet(&arr_atoms, atom, rec))
143| return BadAlloc;
144| }
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2072 >
2025-10-21 13:02:04 +02:00
Alan Coopersmith
c45edc0c51
Xext/xselinux: add fast path to ProcSELinuxListSelections()
...
If there's nothing to send, skip over a bunch of code to make a list
that won't be used, and hopefully make the code path clearer to both
humans and static analyzers, who raise errors as seen in https://gitlab.freedesktop.org/xorg/xserver/-/issues/1817 of
dereferencing NULL pointers when count == 0.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2072 >
2025-10-21 13:02:04 +02:00
Alan Coopersmith
5a8effe1e7
Xext/sync: Avoid dereference of invalid pointer if malloc() failed
...
Reported incorrectly in https://gitlab.freedesktop.org/xorg/xserver/-/issues/1817 as:
xwayland-24.1.6/redhat-linux-build/../Xext/sync.c:2835:33: acquire_memory: allocated here
xwayland-24.1.6/redhat-linux-build/../Xext/sync.c:2843:12: danger: ‘priv’ leaks here; was allocated at [(30)](sarif:/runs/0/results/5/codeFlows/0/threadFlows/0/locations/29)
but the "leak" is really saving the pointer in an uninitalized pointer in
a structure that was already freed when the malloc of the SysCounterInfo
struct failed in SyncCreateSystemCounter(), because it returned the address
of the freed struct instead of NULL to indicate failure.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2072 >
2025-10-21 13:02:04 +02:00
Alan Coopersmith
446baf6b15
Xext/sync: avoid null dereference if SysCounterGetPrivate() returns NULL
...
Reported in https://gitlab.freedesktop.org/xorg/xserver/-/issues/1817 :
xwayland-24.1.6/redhat-linux-build/../Xext/sync.c:2664:9: danger: dereference of NULL ‘SysCounterGetPrivate(pCounter)’
xwayland-24.1.6/redhat-linux-build/../Xext/sync.c:2677:14: danger: dereference of NULL ‘SysCounterGetPrivate(pCounter)’
xwayland-24.1.6/redhat-linux-build/../Xext/sync.c:2767:14: danger: dereference of NULL ‘SysCounterGetPrivate(pCounter)’
xwayland-24.1.6/redhat-linux-build/../Xext/sync.c:2800:14: danger: dereference of NULL ‘SysCounterGetPrivate(pCounter)’
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2072 >
2025-10-21 13:02:04 +02:00
Enrico Weigelt, metux IT consult
202c452b5f
dix: replace XACE_SCREENSAVER_ACCESS by direct callback
...
Replace complicated xace hook by simple and cheap callback.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-10-21 10:49:08 +02:00
Enrico Weigelt, metux IT consult
8d19217b56
Xext: shm: move per-screen private structure into privates area
...
Instead of having a pointer to a struct just consisting of a pointer,
just move that struct directly into the privates area, so we not just
save one extra indirection, but also not having to care about an extra
chunk of malloc'ed memory anymore (thus getting rid of a potential
OOM bug)
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-10-21 10:40:32 +02:00
Enrico Weigelt, metux IT consult
4825c4584a
Xext: shm: shmint.h: drop superflous extern on function prototypes
...
Functions are already `extern` by default.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-10-21 10:23:11 +02:00
Enrico Weigelt, metux IT consult
f19e7a24a1
Xext: shm: unexport ShmSegType variable
...
Not used by any drivers, so no need to keep it exported.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-10-21 10:22:47 +02:00