Antoine Pitrou added the comment:

Well, on the one hand this does sound like a valid use case. On the other hand, 
once the urandom file descriptor is closed by third-party code, it can very 
well be re-opened to point to another file, and then os.urandom() will start 
behaving in a very bad way.

Here is a possible solution in Python:
- when opening the urandom fd for the first time, record its st_ino and st_dev
- when calling urandom() a second time, call fstat() on the fd and check the 
st_ino and st_dev with the known values
- if the values have changed (or if fstat() fails with EBADF), open a new fd to 
/dev/urandom, again

----------
nosy: +neologix
type: crash -> behavior
versions: +Python 3.5

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

Reply via email to