[PATCH 0/5] MR355: win32u: Move more display mode logic out of graphics drivers.
Zhiyi Zhang (@zhiyi)
wine at gitlab.winehq.org
Fri Jul 1 02:10:04 CDT 2022
Zhiyi Zhang (@zhiyi) commented about dlls/winex11.drv/display.c:
> return FALSE;
> }
>
> - memcpy(devmode, (BYTE *)cached_modes + (sizeof(*cached_modes) + cached_modes[0].dmDriverExtra) * n, sizeof(*devmode));
> + mode = *(DEVMODEW *)((BYTE *)cached_modes + (sizeof(*cached_modes) + cached_modes[0].dmDriverExtra) * n);
> pthread_mutex_unlock( &settings_mutex );
>
> -done:
> - /* Set generic fields */
> - devmode->dmSize = FIELD_OFFSET(DEVMODEW, dmICMMethod);
> - devmode->dmDriverExtra = 0;
> - devmode->dmSpecVersion = DM_SPECVERSION;
> - devmode->dmDriverVersion = DM_SPECVERSION;
> - lstrcpyW(devmode->dmDeviceName, dev_name);
> + memcpy( &devmode->dmFields, &mode.dmFields, devmode->dmSize - offsetof(DEVMODEW, dmFields) );
> return TRUE;
You should move this memcpy() before pthread_mutex_unlock().
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/355#note_3092
More information about the wine-devel
mailing list