STINNER Victor added the comment:

Martin:
> I wonder what we should do on Linux if /dev/urandom is unavailable and 
> getrandom() would block.

os.urandom(block=False) should raise BlockingIOError if 
getrandom(GRND_NONBLOCK) fails with EAGAIN and /dev/urandom is not available.

Larry:
> I don't think that happens. getrandom() actually supports two flags.  The 
> flag GRND_RANDOM tells it "behave like /dev/random".  If you don't pass in 
> GRND_RANDOM, it behaves like "/dev/urandom".  So it's hard to imagine that 
> you could have getrandom() and not have /dev/urandom.

You can imagine a "badly configured" container or chroot where /dev or only 
/dev/urandom doesn't exist.

When I played with chroot, it was easy to forget /dev/urandom. Since Python 
uses getrandom() on Linux since Python 3.5, you can imagine that a Python 3.5 
user may not notice the lack of /dev/urandom in the common case (urandom 
initialized), but start to get errors when the container runs before urandom is 
initialized.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue27266>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to