- Fix buffer overflows

svn path=/trunk/; revision=31652
This commit is contained in:
Dmitry Chapyshev 2008-01-07 20:07:09 +00:00
parent 9694f40179
commit b195ebe655

View file

@ -816,28 +816,27 @@ WriteUserLocale(VOID)
{ {
HKEY hKey; HKEY hKey;
LCID lcid; LCID lcid;
TCHAR Locale[8]; TCHAR Locale[12];
DWORD dwDisp; DWORD dwDisp;
LONG ret = ERROR_SUCCESS;
lcid = GetSystemDefaultLCID(); lcid = GetSystemDefaultLCID();
if (GetLocaleInfo(MAKELCID(lcid, SORT_DEFAULT), LOCALE_ILANGUAGE, (WORD*)Locale, sizeof(Locale)) == 0) if (GetLocaleInfo(MAKELCID(lcid, SORT_DEFAULT), LOCALE_ILANGUAGE, (WORD*)Locale, sizeof(Locale)) != 0)
{ {
return; if (RegOpenKey(HKEY_CURRENT_USER, L"Control Panel\\International", &hKey) != ERROR_SUCCESS)
} {
ret = RegCreateKeyEx(HKEY_LOCAL_MACHINE, L"Control Panel\\International",
0, NULL, REG_OPTION_NON_VOLATILE,
KEY_WRITE, NULL, &hKey, &dwDisp);
}
if (RegOpenKey(HKEY_CURRENT_USER, L"Control Panel\\International", &hKey) != ERROR_SUCCESS) if (ret == ERROR_SUCCESS)
{ {
if (RegCreateKeyEx(HKEY_LOCAL_MACHINE, L"Control Panel\\International", RegSetValueEx(hKey, L"Locale", 0, REG_SZ, (LPBYTE)Locale, (DWORD)(lstrlen(Locale)+1));
0, NULL, REG_OPTION_NON_VOLATILE,
KEY_WRITE, NULL, &hKey, &dwDisp))
{
return;
} }
} }
RegSetValueExW(hKey, L"Locale", 0, REG_SZ, (LPBYTE) Locale, (DWORD)(sizeof(Locale) / sizeof(TCHAR)));
RegCloseKey(hKey); RegCloseKey(hKey);
} }