[SHELL32] DoGetProductType(): Check RegQueryValueExW() dwType (#2331)

This commit is contained in:
Serge Gautherie 2020-02-11 17:36:12 +01:00 committed by GitHub
parent 9199c90328
commit 9f4e8ef25b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -67,11 +67,11 @@ typedef enum _NT_PRODUCT_TYPE
static BOOL
DoGetProductType(PNT_PRODUCT_TYPE ProductType)
{
static const WCHAR ProductOptions[] = L"System\\CurrentControlSet\\Control\\ProductOptions";
static const WCHAR ProductOptions[] = L"SYSTEM\\CurrentControlSet\\Control\\ProductOptions";
HKEY hKey;
LONG error;
WCHAR szValue[32];
DWORD cbValue;
DWORD cbValue, dwType;
static DWORD s_dwProductType = 0;
if (s_dwProductType != 0)
@ -87,8 +87,8 @@ DoGetProductType(PNT_PRODUCT_TYPE ProductType)
return FALSE;
cbValue = sizeof(szValue);
error = RegQueryValueExW(hKey, L"ProductType", NULL, NULL, (LPBYTE)szValue, &cbValue);
if (!error)
error = RegQueryValueExW(hKey, L"ProductType", NULL, &dwType, (LPBYTE)szValue, &cbValue);
if (!error && dwType == REG_SZ)
{
if (lstrcmpW(szValue, L"WinNT") == 0)
*ProductType = NtProductWinNt;