mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2026-06-07 18:08:22 +02:00
Add screensaver protocol builders for SetAttributes, UnsetAttributes, and ForceScreenSaver, then add a regression test that reproduces the CreateSaverWindow use-after-free. The test sequence: 1. SetAttributes(root, 100x100, mask=0) - creates screen private with attr 2. ForceScreenSaver(Active) - creates the saver window 3. UnsetAttributes(root) - clears pPriv->attr to NULL 4. ForceScreenSaver(Active) - re-enters CreateSaverWindow Without the fix, step 4 triggers CheckScreenPrivate which finds all fields empty (attr=NULL, events=NULL, hasWindow=FALSE, installedMap=None), frees pPriv, and sets the screen private to NULL. The function then dereferences the freed pPriv->attr pointer, causing a use-after-free. Assisted-by: Claude:claude-opus-4-6 Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2228> |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| bigrequests.py | ||
| glx.py | ||
| present.py | ||
| randr.py | ||
| record.py | ||
| render.py | ||
| screensaver.py | ||
| shm.py | ||
| sync.py | ||
| vidmode.py | ||
| x11.py | ||
| xi.py | ||
| xinerama.py | ||
| xkb.py | ||
| xres.py | ||