mirror of
https://github.com/reactos/reactos.git
synced 2025-02-23 00:45:24 +00:00
[WIN32K]
- Check devmode size in NtUserChangeDisplaySettings - Copy memory instead of setting fields in UserEnumDisplaySettings, so we don't lost anything. svn path=/branches/reactos-yarotows/; revision=47355
This commit is contained in:
parent
46b40c489f
commit
75e296c6be
1 changed files with 4 additions and 5 deletions
|
@ -648,11 +648,8 @@ NtUserEnumDisplaySettings(
|
|||
cbExtra = lpDevMode->dmDriverExtra;
|
||||
|
||||
ProbeForWrite(lpDevMode, cbSize + cbExtra, 1);
|
||||
lpDevMode->dmPelsWidth = pdm->dmPelsWidth;
|
||||
lpDevMode->dmPelsHeight = pdm->dmPelsHeight;
|
||||
lpDevMode->dmBitsPerPel = pdm->dmBitsPerPel;
|
||||
lpDevMode->dmDisplayFrequency = pdm->dmDisplayFrequency;
|
||||
lpDevMode->dmDisplayFlags = pdm->dmDisplayFlags;
|
||||
/* Output what we got */
|
||||
RtlCopyMemory(lpDevMode, pdm, min(cbSize, pdm->dmSize));
|
||||
|
||||
/* output private/extra driver data */
|
||||
if (cbExtra > 0 && pdm->dmDriverExtra > 0)
|
||||
|
@ -703,6 +700,8 @@ UserChangeDisplaySettings(
|
|||
return DISP_CHANGE_BADPARAM;
|
||||
}
|
||||
}
|
||||
else if (pdm->dmSize < FIELD_OFFSET(DEVMODEW, dmFields))
|
||||
return DISP_CHANGE_FAILED;
|
||||
else
|
||||
dm = *pdm;
|
||||
|
||||
|
|
Loading…
Reference in a new issue