mirror of https://github.com/python/cpython
Issue #22181: Fix dev_urandom_noraise(), try calling py_getrandom() before
opening /dev/urandom.
This commit is contained in:
parent
66aab0c4b5
commit
c7cd12da60
|
@ -166,10 +166,6 @@ dev_urandom_noraise(unsigned char *buffer, Py_ssize_t size)
|
||||||
|
|
||||||
assert (0 < 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
|
#ifdef HAVE_GETRANDOM_SYSCALL
|
||||||
if (py_getrandom(buffer, size, 0) == 1)
|
if (py_getrandom(buffer, size, 0) == 1)
|
||||||
return;
|
return;
|
||||||
|
@ -177,6 +173,10 @@ dev_urandom_noraise(unsigned char *buffer, Py_ssize_t size)
|
||||||
* on reading /dev/urandom */
|
* on reading /dev/urandom */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
fd = _Py_open_noraise("/dev/urandom", O_RDONLY);
|
||||||
|
if (fd < 0)
|
||||||
|
Py_FatalError("Failed to open /dev/urandom");
|
||||||
|
|
||||||
while (0 < size)
|
while (0 < size)
|
||||||
{
|
{
|
||||||
do {
|
do {
|
||||||
|
|
Loading…
Reference in New Issue