"James Hawkins" truiken@gmail.com wrote:
Fixed more bugs spotted by Dmitry.
Changelog
- cleanup cross-call functions
If you could use 'static const' as everywhere else and not 'const static' that would be nice.
- size = sizeof(DWORD);
- r = RegQueryValueExW(key, nameW, NULL, &keytype, NULL, &size);
Why did you add size initialization here? If that wasn't done before there was a reason for that.
- provNameLen = *pcbProvName * sizeof(WCHAR);
- if ( pszProvName && (str = CRYPT_Alloc(provNameLen * sizeof(WCHAR))) )
- CRYPT_ReturnLastError(ERROR_NOT_ENOUGH_MEMORY);
- ret = CryptEnumProvidersW(dwIndex, pdwReserved, dwFlags, pdwProvType, str, &provNameLen);
Remove double sizeof(WCHAR) multiplcation here and everywhere else.
- DWORD size = sizeof(DWORD);
- DWORD size = sizeof(pdwProvType);
HKEY subkey;
- if (RegEnumKeyA(hKey, dwIndex, pszProvName, *pcbProvName))
- if (RegEnumKeyW(hKey, dwIndex, pszProvName, *pcbProvName))
RegEnumKeyW takes number of characters, not bytes. Why did you change that since your previous patch?
Please read documentation first, otherwise you are wasting your and our time.