use EnumDisplaySettingsA instead of unicode version, which seems to cause a memory overrun

This was SVN commit r570.
This commit is contained in:
janwas 2004-06-19 22:51:54 +00:00
parent 1514075c9f
commit 62f3945116

View File

@ -57,12 +57,16 @@ static int import_EnumDisplayDevices()
// if we fail, outputs are unchanged (assumed initialized to defaults)
int get_cur_vmode(int* xres, int* yres, int* bpp, int* freq)
{
DEVMODEW dm;
// don't use EnumDisplaySettingsW - BoundsChecker reports it causes
// a memory overrun (even if called as the very first thing, before
// static CRT initialization).
DEVMODEA dm;
memset(&dm, 0, sizeof(dm));
dm.dmSize = sizeof(dm);
// dm.dmDriverExtra already set to 0 by memset
if(!EnumDisplaySettingsW(0, ENUM_CURRENT_SETTINGS, &dm))
if(!EnumDisplaySettingsA(0, ENUM_CURRENT_SETTINGS, &dm))
return -1;
if(dm.dmFields & DM_PELSWIDTH && xres)