Enable ERROR_MORE_DATA to be set in CryptGetDefaultProvider.
This commit is contained in:
parent
e02eb90509
commit
1a6fa44658
|
@ -1247,6 +1247,7 @@ BOOL WINAPI CryptGetDefaultProviderA (DWORD dwProvType, DWORD *pdwReserved,
|
||||||
{
|
{
|
||||||
HKEY hKey;
|
HKEY hKey;
|
||||||
PSTR keyname;
|
PSTR keyname;
|
||||||
|
DWORD result;
|
||||||
|
|
||||||
if (pdwReserved || !pcbProvName)
|
if (pdwReserved || !pcbProvName)
|
||||||
CRYPT_ReturnLastError(ERROR_INVALID_PARAMETER);
|
CRYPT_ReturnLastError(ERROR_INVALID_PARAMETER);
|
||||||
|
@ -1262,12 +1263,18 @@ BOOL WINAPI CryptGetDefaultProviderA (DWORD dwProvType, DWORD *pdwReserved,
|
||||||
CRYPT_ReturnLastError(NTE_PROV_TYPE_NOT_DEF);
|
CRYPT_ReturnLastError(NTE_PROV_TYPE_NOT_DEF);
|
||||||
}
|
}
|
||||||
CRYPT_Free(keyname);
|
CRYPT_Free(keyname);
|
||||||
if (RegQueryValueExA(hKey, "Name", NULL, NULL, pszProvName, pcbProvName))
|
|
||||||
|
result = RegQueryValueExA(hKey, "Name", NULL, NULL, pszProvName, pcbProvName);
|
||||||
|
if (result)
|
||||||
{
|
{
|
||||||
if (GetLastError() != ERROR_MORE_DATA)
|
if (result != ERROR_MORE_DATA)
|
||||||
SetLastError(NTE_PROV_TYPE_ENTRY_BAD);
|
SetLastError(NTE_PROV_TYPE_ENTRY_BAD);
|
||||||
|
else
|
||||||
|
SetLastError(result);
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
RegCloseKey(hKey);
|
RegCloseKey(hKey);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue