From 80a0a95fe4910390b7608fde128c2a45ab7980c7 Mon Sep 17 00:00:00 2001 From: Erik Lander Date: Mon, 16 Jan 2017 03:40:34 +0100 Subject: fallback to qrand if BCryptGenRandom fails Don't know if this function can fail for other reasons then incorrect parameters (not enough entropy maybe?). Falling back to qrand is not very useful a proper fix will require more changes further up the stack. --- src/util.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/util.cpp b/src/util.cpp index 6cbc78af..353e4b71 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -181,7 +181,8 @@ void Util::copyDir(const QString src, const QString dest) { int Util::rand() { #ifdef Q_OS_WIN quint32 ret = 0; - BCryptGenRandom(NULL, (PUCHAR)&ret, sizeof(ret), BCRYPT_USE_SYSTEM_PREFERRED_RNG); + if (FAILED(BCryptGenRandom(NULL, (PUCHAR)&ret, sizeof(ret), BCRYPT_USE_SYSTEM_PREFERRED_RNG))) + return qrand(); return ret%RAND_MAX; #else return qrand(); -- cgit v1.2.3