Index: src/api.cc |
diff --git a/src/api.cc b/src/api.cc |
index 415bd41bb19496036f3bda9a6c78ac55ec033ecd..5e9cd65d2c206bda763ddf8ce84cb9b238088d7f 100644 |
--- a/src/api.cc |
+++ b/src/api.cc |
@@ -5181,8 +5181,16 @@ bool v8::V8::Initialize() { |
} |
-void v8::V8::SetEntropySource(EntropySource entropy_source) { |
+bool v8::V8::SetEntropySource(EntropySource entropy_source) { |
+ // The entropy source must be set before the library is initialized, |
+ // as otherwise not all random number generators will pick up the |
+ // entropy source and will fall back to weak entropy instead. |
+ i::Isolate* isolate = i::Isolate::UncheckedCurrent(); |
+ if (isolate != NULL && isolate->IsInitialized()) |
Dmitry Lomov (no reviews)
2013/09/23 11:24:15
Looks like this should be isolate == NULL || !isol
Dmitry Lomov (no reviews)
2013/09/23 11:25:54
Nevermind.
|
+ return false; |
Dmitry Lomov (no reviews)
2013/09/23 11:24:15
I think just returning false will be ignored (also
Benedikt Meurer
2013/09/23 11:36:41
Done.
|
+ |
i::RandomNumberGenerator::SetEntropySource(entropy_source); |
+ return true; |
} |