Menu

#1660 Server crashes after screen properties update fails on Win8/DXGI path (2.8.87)

open
nobody
7
1 day ago
1 day ago
No

Win8ScreenDriver::applyNewScreenProperties() (desktop/Win8ScreenDriver.cpp)
leaves m_drvImpl=null when the Win8ScreenDriverImpl constructor throws.
Five methods dereference m_drvImpl without null checks:
executeDetection() (line 58), getScreenBuffer() (79), grabFb() (85),
getScreenPropertiesChanged() (91), getCursorPosition() (135).

The file header says "This member must be always guaranteed non zero" -
applyNewScreenProperties() violates this on any DXGI init failure
(GPU reset, display hotplug, RDP sessions, hybrid-GPU laptops).

Attached PoC reproduces: applyNewScreenProperties() returns False,
m_drvImpl is None, executeDetection() crashes with AttributeError.

Fix: re-throw exception or keep m_drvImpl at a working fallback.
Version: 2.8.87.

Discussion


Log in to post a comment.

MongoDB Logo MongoDB