xserver/Xext
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Peter Hutterer e83ce3c5db
Some checks are pending
Build X servers / xserver-build-ubuntu (push) Waiting to run
Build X servers / drivers-build-ubuntu (push) Waiting to run
Build X servers / xserver-build-macos (push) Waiting to run
Build X servers / Release pushed tag (push) Blocked by required conditions
Xext/shm: add missing reply byte-swap in ProcShmCreateSegment
ProcShmCreateSegment() sent the xShmCreateSegmentReply to the client
without byte-swapping the sequenceNumber field for byte-swapped clients.
Every other SHM Proc function that sends a reply (ProcShmQueryVersion,
ProcShmGetImage) correctly swaps the reply fields.

The sequenceNumber is a CARD16 that Xlib/XCB uses to match replies to
their corresponding requests. With a garbled sequence number, the client
library will mismatch the reply with the wrong request, causing the
client to hang waiting for the real reply, process stale data from a
different request's reply, or crash due to unexpected reply format.

Fix by adding byte-swap of sequenceNumber and length before
WriteToClient, consistent with the other SHM reply handlers.

Co-Authored-by: Claude Code <noreply@anthropic.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2181>
2026-04-27 15:20:43 +02:00
..
namespace xext: namespace: fix printf format string 2025-12-11 15:04:42 +01:00
bigreq.c miext: move over extinit_priv.h from include 2025-06-12 17:21:46 +02:00
dpms.c dix: add dixAllocServerXID() 2025-06-12 17:21:48 +02:00
dpmsproc.h Xext: drop checking for HAVE_DIX_CONFIG_H 2025-06-12 16:50:20 +02:00
geext.c miext: move over extinit_priv.h from include 2025-06-12 17:21:46 +02:00
geext_priv.h xext: add/fix include guards where missing/broken 2025-06-27 13:58:05 +02:00
hashtable.c xext: replace xallocarray() by calloc() 2025-06-12 17:21:43 +02:00
hashtable.h Xext: hashtable.h: unexport functions not used by drivers 2025-06-12 16:51:36 +02:00
meson.build treewide: remove "lib" prefix in static_library names (meson) 2025-07-03 12:01:52 +02:00
panoramiX.c miext: move over extinit_priv.h from include 2025-06-12 17:21:46 +02:00
panoramiX.h composite: clean up including panoramix headers 2025-06-12 17:21:43 +02:00
panoramiXh.h xext: add/fix include guards where missing/broken 2025-06-27 13:58:05 +02:00
panoramiXprocs.c panoramix: protect against allocaton failure 2025-06-12 17:21:44 +02:00
panoramiXsrv.h panoramix: export PanoramiXTranslateVisualID for nvidia 2025-06-16 10:32:48 +02:00
panoramiXSwap.c Xext: clean up including panoramix headers 2025-06-12 17:21:43 +02:00
saver.c dix: clean up MakeWindowOptional() calls and add alloc fault checks 2025-06-12 17:21:48 +02:00
security.c miext: move over extinit_priv.h from include 2025-06-12 17:21:46 +02:00
securitysrv.h Xext: security: drop not needed include 2025-06-12 16:30:13 +02:00
shape.c Xext: shape: fix non-ximerama build 2025-08-12 11:07:24 +02:00
shm.c Xext/shm: add missing reply byte-swap in ProcShmCreateSegment 2026-04-27 15:20:43 +02:00
shmint.h xext: Fix shmint.h to not use headers outside of sdk_HEADERS 2013-11-14 10:22:15 +09:00
sleepuntil.c Xext: use calloc() instead of malloc() 2025-06-12 16:48:11 +02:00
sleepuntil.h Xext: drop checking for HAVE_DIX_CONFIG_H 2025-06-12 16:50:20 +02:00
sync.c Xext: sync: fix missing byte swap in ProcSyncQueryAlarm() 2026-04-27 15:18:26 +02:00
syncsdk.h xsync: Add resource inside of SyncCreate, export SyncCreate 2019-04-17 14:01:17 -07:00
syncsrv.h sync: Convert from "CARD64" to int64_t. 2017-09-20 13:19:27 -04:00
vidmode.c Xext/vidmode: fix SProcVidModeSwitchToMode swapping only screen field 2026-04-27 15:17:23 +02:00
xace.c xace: export XaceRegisterCallback() and XaceDeleteCallback() 2025-06-12 17:21:45 +02:00
xace.h Xext: Fix typo in xace.h 2025-06-27 17:10:33 +02:00
xacestr.h dix: move over private defintions from selection.h to private header 2025-06-12 17:21:46 +02:00
xcmisc.c miext: move over extinit_priv.h from include 2025-06-12 17:21:46 +02:00
xf86bigfont.c xf86bigfont: fix compiler warning on unused variable 2025-07-01 17:01:07 +02:00
xf86bigfontsrv.h Move extension initialisation prototypes into extinit.h 2012-07-09 23:06:41 -07:00
xres.c Xext/xres: fix wrong swap check 2026-04-27 15:18:00 +02:00
xselinux.h include: unpexport SELINUX_* consts from include/global.h 2024-03-25 19:40:04 +00:00
xselinux_ext.c dix: move over private defintions from selection.h to private header 2025-06-12 17:21:46 +02:00
xselinux_hooks.c selinux: remap security classes on policyload 2026-04-21 10:45:12 +02:00
xselinux_label.c drop obsolete HAVE_DIX_CONFIG_H 2024-10-10 13:38:31 +00:00
xselinuxint.h include: drop obsolete registry.h 2024-03-03 23:20:06 +00:00
xtest.c miext: move over extinit_priv.h from include 2025-06-12 17:21:46 +02:00
xvdisp.c Zero out structs to avoid leaking information via padding 2026-04-27 15:16:13 +02:00
xvdisp.h xext: add/fix include guards where missing/broken 2025-06-27 13:58:05 +02:00
xvdix.h treewide: preemptively revert !1714 where it affects ABI compatibility 2025-06-16 10:32:48 +02:00
xvdix_priv.h Xext: xv: fix redefinition of typedef 'XvPortNotifyPtr' 2025-08-05 18:59:43 +02:00
xvmain.c miext: move over extinit_priv.h from include 2025-06-12 17:21:46 +02:00
xvmc.c xres/xkb/xvmc/modesetting: Fix incorrect pointer data size usage 2025-06-13 13:01:24 +02:00
xvmcext.h xvmc: unexport XvMCFindXvImage() 2024-10-10 19:59:48 +00:00