Module: wine
Branch: master
Commit: 9d255d6d0c3264b733b813fd9defb1247b18ba39
URL: https://gitlab.winehq.org/wine/wine/-/commit/9d255d6d0c3264b733b813fd9defb1…
Author: Tatsuyuki Ishi <ishitatsuyuki(a)gmail.com>
Date: Thu Jun 22 16:32:45 2023 +0900
win32u: Avoid SEGV in QueryDisplayConfig when run as service.
The virtual_monitor used for non-interactive service executions do not have
an adapter set. Avoid segfaulting and poisoning the mutex in such cases.
---
dlls/win32u/sysparams.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/dlls/win32u/sysparams.c b/dlls/win32u/sysparams.c
index 44ee33c80f0..acda600b43c 100644
--- a/dlls/win32u/sysparams.c
+++ b/dlls/win32u/sysparams.c
@@ -2569,6 +2569,9 @@ LONG WINAPI NtUserQueryDisplayConfig( UINT32 flags, UINT32 *paths_count, DISPLAY
if (!(monitor->dev.state_flags & DISPLAY_DEVICE_ACTIVE))
continue;
+ if (!monitor->adapter)
+ continue;
+
adapter_index = monitor->adapter->id;
gpu_luid = &monitor->adapter->gpu_luid;
output_id = monitor->output_id;