[PATCH 0/1] MR3136: 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. /cc @rbernon -- https://gitlab.winehq.org/wine/wine/-/merge_requests/3136
From: Tatsuyuki Ishi <ishitatsuyuki(a)gmail.com> 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; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/3136
For the record, from a quick test it looks like QueryDisplayConfig returns ERROR_ACCESS_DENIED in services. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/3136#note_36554
This merge request was approved by Rémi Bernon. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/3136
participants (3)
-
Rémi Bernon -
Tatsuyuki Ishi -
Tatsuyuki Ishi (@ishitatsuyuki)