RDRAND test: also disable if RDRAND produced only three samples

It's unlikely, since we do 64-bit RDRAND on 64-bit machines.

Change-Id: I8d95fbaf90e842b9b44dfffd15cd684a98a7ff50
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
This commit is contained in:
Thiago Macieira 2019-10-13 21:15:14 -07:00
parent 360df2cf74
commit 8e8b50b061

View File

@ -685,7 +685,7 @@ static QT_FUNCTION_TARGET(RDRND) Q_DECL_COLD_FUNCTION bool checkRdrndWorks() noe
// Check the results for equality // Check the results for equality
if (testBuffer[0] == testBuffer[1] if (testBuffer[0] == testBuffer[1]
&& testBuffer[0] == testBuffer[2] && testBuffer[0] == testBuffer[2]
&& end == testBuffer + TestBufferSize && testBuffer[0] == testBuffer[3]) { && (end < testBuffer + TestBufferSize || testBuffer[0] == testBuffer[3])) {
fprintf(stderr, "WARNING: CPU random generator seem to be failing, " fprintf(stderr, "WARNING: CPU random generator seem to be failing, "
"disabling hardware random number generation\n" "disabling hardware random number generation\n"
"WARNING: RDRND generated:"); "WARNING: RDRND generated:");