From: Victor Stinner Date: Thu, 19 Mar 2015 22:24:45 +0000 (+0100) Subject: Issue #22181: Fix dev_urandom_noraise(), try calling py_getrandom() before X-Git-Tag: v3.5.0a3~127^2~3 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c7cd12da6062e19625cfef38aa25ed58a6109fa1;p=python Issue #22181: Fix dev_urandom_noraise(), try calling py_getrandom() before opening /dev/urandom. --- diff --git a/Python/random.c b/Python/random.c index 10fc505e0f..c924323fda 100644 --- a/Python/random.c +++ b/Python/random.c @@ -166,10 +166,6 @@ dev_urandom_noraise(unsigned char *buffer, Py_ssize_t size) assert (0 < size); - fd = _Py_open_noraise("/dev/urandom", O_RDONLY); - if (fd < 0) - Py_FatalError("Failed to open /dev/urandom"); - #ifdef HAVE_GETRANDOM_SYSCALL if (py_getrandom(buffer, size, 0) == 1) return; @@ -177,6 +173,10 @@ dev_urandom_noraise(unsigned char *buffer, Py_ssize_t size) * on reading /dev/urandom */ #endif + fd = _Py_open_noraise("/dev/urandom", O_RDONLY); + if (fd < 0) + Py_FatalError("Failed to open /dev/urandom"); + while (0 < size) { do {