This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author pitrou
Recipients kwirk, neologix, pitrou, vstinner
Date 2014-04-16.17:57:48
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <>
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
Date User Action Args
2014-04-16 17:57:48pitrousetrecipients: + pitrou, vstinner, neologix, kwirk
2014-04-16 17:57:48pitrousetmessageid: <>
2014-04-16 17:57:48pitroulinkissue21207 messages
2014-04-16 17:57:48pitroucreate