xserver/miext/sync
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Kiyoshi Spreclerg 3e2fccbb7a miext/sync/misyncfd.c: fix NULL deref on uninitialized screens
852128f18 made the screen private preallocated, so it exists on every
screen as soon as the single global key is registered. sync_fd_screen_priv()
therefore never returns NULL again, which breaks the "already initialized"
check in miSyncFdScreenInit() and the guards in miSyncInitFenceFromFD() /
miSyncFDFromFence(), which then call through a zeroed funcs pointer.

Multi-GPU setups crash on this: with glamor on one screen and a non-glamor
driver (NVIDIA blob under PRIME) on the other, XSyncCreateFenceFromFD on
the latter kills the server.

Use a filled-in funcs as the sentinel instead of the private's presence.

Assisted-by: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: Kiyoshi Spreclerg <kiyoshi_pip@protonmail.com>
2026-08-31 12:39:20 +02:00
..
meson.build mi: sync: move over public SDK headers to include/ 2026-02-12 14:32:24 +01:00
misync.c miext: use stdbool's 'bool' instead of 'Bool' for local variables 2026-08-07 14:26:48 +02:00
misync_priv.h license: add X11 OR MIT OR AGPL-3.0-or-later to Enrico Weigelt's source files 2026-07-29 10:02:59 +02:00
misyncfd.c miext/sync/misyncfd.c: fix NULL deref on uninitialized screens 2026-08-31 12:39:20 +02:00
misyncshm.c miext: parentheses around macro argument symbols 2026-06-24 14:13:33 +02:00