diff options
Diffstat (limited to 'llvm/lib/Support/Windows/Path.inc')
| -rw-r--r-- | llvm/lib/Support/Windows/Path.inc | 14 |
1 files changed, 1 insertions, 13 deletions
diff --git a/llvm/lib/Support/Windows/Path.inc b/llvm/lib/Support/Windows/Path.inc index 5a41e49e256..a431fa04806 100644 --- a/llvm/lib/Support/Windows/Path.inc +++ b/llvm/lib/Support/Windows/Path.inc @@ -112,25 +112,13 @@ static error_code createUniqueEntity(const Twine &model, int &result_fd, // needed if the randomly chosen path already exists. SmallVector<wchar_t, 128> random_path_utf16; - // Get a Crypto Provider for CryptGenRandom. - HCRYPTPROV HCPC; - if (!::CryptAcquireContextW(&HCPC, - NULL, - NULL, - PROV_RSA_FULL, - CRYPT_VERIFYCONTEXT)) - return windows_error(::GetLastError()); - ScopedCryptContext CryptoProvider(HCPC); - retry_random_path: random_path_utf16.set_size(0); for (SmallVectorImpl<wchar_t>::const_iterator i = model_utf16.begin(), e = model_utf16.end(); i != e; ++i) { if (*i == L'%') { - BYTE val = 0; - if (!::CryptGenRandom(CryptoProvider, 1, &val)) - return windows_error(::GetLastError()); + unsigned val = sys::Process::GetRandomNumber(); random_path_utf16.push_back(L"0123456789abcdef"[val & 15]); } else |

