On Fri, 30 Sep 2022, Alvin Wong wrote:
On 30/9/2022 5:25, Martin Storsjö wrote:+ bcrypt = LoadLibraryW(L"bcrypt.dll"); + if (bcrypt) { + NTSTATUS (WINAPI *pBCryptOpenAlgorithmProvider)(BCRYPT_ALG_HANDLE *, LPCWSTR, LPCWSTR, ULONG); + NTSTATUS (WINAPI *pBCryptGenRandom)(BCRYPT_ALG_HANDLE, PUCHAR, ULONG, ULONG); + NTSTATUS (WINAPI *pBCryptCloseAlgorithmProvider)(BCRYPT_ALG_HANDLE, ULONG); + pBCryptOpenAlgorithmProvider = (void*)GetProcAddress(bcrypt, "BCryptOpenAlgorithmProvider"); + pBCryptGenRandom = (void*)GetProcAddress(bcrypt, "BCryptGenRandom"); + pBCryptCloseAlgorithmProvider = (void*)GetProcAddress(bcrypt, "BCryptCloseAlgorithmProvider"); + + if (pBCryptOpenAlgorithmProvider && pBCryptGenRandom && pBCryptCloseAlgorithmProvider) { + BCRYPT_ALG_HANDLE alg; + if (BCRYPT_SUCCESS(pBCryptOpenAlgorithmProvider(&alg, BCRYPT_RNG_ALGORITHM, MS_PRIMITIVE_PROVIDER, 0))) { + pBCryptGenRandom(alg, (void*)&__stack_chk_guard, sizeof(__stack_chk_guard), 0);Should this also check the status result of pBCryptGenRandom(...)?
Thanks - yeah I guess it should, updating the patch locally with that change.
Then again, I'm not at all convinced (but I'm open for discussion) that we should include this patch at all - I included it mostly for reference and discussion here.
// Martin _______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
