1*6777b538SAndroid Build Coastguard WorkerThis patch removes calls to getentropy() and BCryptGetRandom() because they 2*6777b538SAndroid Build Coastguard Workeraren't implemented or supported on certain platforms based on the trybot 3*6777b538SAndroid Build Coastguard Workerresults I saw. I will try upstreaming a configure script flag soon to replace 4*6777b538SAndroid Build Coastguard Workerthis patch file. This patch is safe because it reverts the random number 5*6777b538SAndroid Build Coastguard Workergeneration behavior before a recent libxml upstream patch. 6*6777b538SAndroid Build Coastguard Worker 7*6777b538SAndroid Build Coastguard Workerdiff --git a/dict.c b/dict.c 8*6777b538SAndroid Build Coastguard Workerindex 5c9f3aa2..7a492895 100644 9*6777b538SAndroid Build Coastguard Worker--- a/dict.c 10*6777b538SAndroid Build Coastguard Worker+++ b/dict.c 11*6777b538SAndroid Build Coastguard Worker@@ -24,14 +24,10 @@ 12*6777b538SAndroid Build Coastguard Worker #include <stdlib.h> 13*6777b538SAndroid Build Coastguard Worker #include <string.h> 14*6777b538SAndroid Build Coastguard Worker #include <time.h> 15*6777b538SAndroid Build Coastguard Worker-#ifdef HAVE_SYS_RANDOM_H 16*6777b538SAndroid Build Coastguard Worker-#include <sys/random.h> 17*6777b538SAndroid Build Coastguard Worker-#endif 18*6777b538SAndroid Build Coastguard Worker 19*6777b538SAndroid Build Coastguard Worker #ifdef _WIN32 20*6777b538SAndroid Build Coastguard Worker #define WIN32_LEAN_AND_MEAN 21*6777b538SAndroid Build Coastguard Worker #include <windows.h> 22*6777b538SAndroid Build Coastguard Worker-#include <bcrypt.h> 23*6777b538SAndroid Build Coastguard Worker #endif 24*6777b538SAndroid Build Coastguard Worker 25*6777b538SAndroid Build Coastguard Worker #include "private/dict.h" 26*6777b538SAndroid Build Coastguard Worker@@ -926,29 +922,6 @@ xmlInitRandom(void) { 27*6777b538SAndroid Build Coastguard Worker xmlInitMutex(&xmlRngMutex); 28*6777b538SAndroid Build Coastguard Worker 29*6777b538SAndroid Build Coastguard Worker { 30*6777b538SAndroid Build Coastguard Worker-#ifdef _WIN32 31*6777b538SAndroid Build Coastguard Worker- NTSTATUS status; 32*6777b538SAndroid Build Coastguard Worker- 33*6777b538SAndroid Build Coastguard Worker- status = BCryptGenRandom(NULL, (unsigned char *) globalRngState, 34*6777b538SAndroid Build Coastguard Worker- sizeof(globalRngState), 35*6777b538SAndroid Build Coastguard Worker- BCRYPT_USE_SYSTEM_PREFERRED_RNG); 36*6777b538SAndroid Build Coastguard Worker- if (!BCRYPT_SUCCESS(status)) { 37*6777b538SAndroid Build Coastguard Worker- fprintf(stderr, "libxml2: BCryptGenRandom failed with " 38*6777b538SAndroid Build Coastguard Worker- "error code %lu\n", GetLastError()); 39*6777b538SAndroid Build Coastguard Worker- abort(); 40*6777b538SAndroid Build Coastguard Worker- } 41*6777b538SAndroid Build Coastguard Worker-#elif defined(HAVE_GETENTROPY) 42*6777b538SAndroid Build Coastguard Worker- while (1) { 43*6777b538SAndroid Build Coastguard Worker- if (getentropy(globalRngState, sizeof(globalRngState)) == 0) 44*6777b538SAndroid Build Coastguard Worker- break; 45*6777b538SAndroid Build Coastguard Worker- 46*6777b538SAndroid Build Coastguard Worker- if (errno != EINTR) { 47*6777b538SAndroid Build Coastguard Worker- fprintf(stderr, "libxml2: getentropy failed with " 48*6777b538SAndroid Build Coastguard Worker- "error code %d\n", errno); 49*6777b538SAndroid Build Coastguard Worker- abort(); 50*6777b538SAndroid Build Coastguard Worker- } 51*6777b538SAndroid Build Coastguard Worker- } 52*6777b538SAndroid Build Coastguard Worker-#else 53*6777b538SAndroid Build Coastguard Worker int var; 54*6777b538SAndroid Build Coastguard Worker 55*6777b538SAndroid Build Coastguard Worker globalRngState[0] = 56*6777b538SAndroid Build Coastguard Worker@@ -957,7 +930,6 @@ xmlInitRandom(void) { 57*6777b538SAndroid Build Coastguard Worker globalRngState[1] = 58*6777b538SAndroid Build Coastguard Worker HASH_ROL((unsigned) ((size_t) &xmlRngMutex & 0xFFFFFFFF), 16) ^ 59*6777b538SAndroid Build Coastguard Worker HASH_ROL((unsigned) ((size_t) &var & 0xFFFFFFFF), 24); 60*6777b538SAndroid Build Coastguard Worker-#endif 61*6777b538SAndroid Build Coastguard Worker } 62*6777b538SAndroid Build Coastguard Worker } 63*6777b538SAndroid Build Coastguard Worker 64