Skip to content

Commit 8247a3e

Browse files
committed
---
yaml --- r: 277638 b: refs/heads/try c: 61cbd07 h: refs/heads/master
1 parent f85c0cd commit 8247a3e

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
refs/heads/master: 6dbb0e86aec11050480beb76eade6fb805010ba7
33
refs/heads/snap-stage3: 235d77457d80b549dad3ac36d94f235208a1eafb
4-
refs/heads/try: 121225f17d039e51ea462437189c7c5d229291a8
4+
refs/heads/try: 61cbd07dec2d9670f170bed44f1815ea29a8a214
55
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
66
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
77
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try/src/libstd/sys/unix/rand.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,14 @@ mod imp {
6666
if err == libc::EINTR {
6767
continue;
6868
} else if err == libc::EAGAIN {
69+
// if getrandom() returns EAGAIN it would have blocked
70+
// because the non-blocking pool (urandom) has not
71+
// initialized in the kernel yet due to a lack of entropy
72+
// the fallback we do here is to avoid blocking applications
73+
// which could depend on this call without ever knowing
74+
// they do and don't have a work around. The PRNG of
75+
// /dev/urandom will still be used but not over a completely
76+
// full entropy pool
6977
let reader = File::open("/dev/urandom").expect("Unable to open /dev/urandom");
7078
let mut reader_rng = ReaderRng::new(reader);
7179
reader_rng.fill_bytes(& mut v[read..]);

0 commit comments

Comments
 (0)