(original) (raw)

I think this is an issue unrelated to the big discussion from a little while ago. The problem isn't that os.urandom() uses getrandom(), it's that it calls it in a mode that may block.

2016-06-14 8:07 GMT-07:00 Steven D'Aprano <steve@pearwood.info>:
Is this right? I thought we had decided that os.urandom should \*not\*
fall back on getrandom on Linux?



On Tue, Jun 14, 2016 at 02:36:27PM +0000, victor. stinner wrote:
\> https://hg.python.org/cpython/rev/e028e86a5b73
\> changeset: 102033:e028e86a5b73
\> branch: 3.5
\> parent: 102031:a36238de31ae
\> user: Victor Stinner <victor.stinner@gmail.com>
\> date: Tue Jun 14 16:31:35 2016 +0200
\> summary:
\> Fix os.urandom() using getrandom() on Linux
\>
\> Issue #27278: Fix os.urandom() implementation using getrandom() on Linux.
\> Truncate size to INT\_MAX and loop until we collected enough random bytes,
\> instead of casting a directly Py\_ssize\_t to int.
\>
\> files:
\> Misc/NEWS | 4 ++++
\> Python/random.c | 2 +-
\> 2 files changed, 5 insertions(+), 1 deletions(-)
\>
\>
\> diff --git a/Misc/NEWS b/Misc/NEWS
\> --- a/Misc/NEWS
\> +++ b/Misc/NEWS
\> @@ -13,6 +13,10 @@
\> Library
\> -------
\>
\> +- Issue #27278: Fix os.urandom() implementation using getrandom() on Linux.
\> + Truncate size to INT\_MAX and loop until we collected enough random bytes,
\> + instead of casting a directly Py\_ssize\_t to int.
\> +
\> - Issue #26386: Fixed ttk.TreeView selection operations with item id's
\> containing spaces.
\>
\> diff --git a/Python/random.c b/Python/random.c
\> --- a/Python/random.c
\> +++ b/Python/random.c
\> @@ -143,7 +143,7 @@
\> to 1024 bytes \*/
\> n = Py\_MIN(size, 1024);
\> #else
\> - n = size;
\> + n = Py\_MIN(size, INT\_MAX);
\> #endif
\>
\> errno = 0;
\>
\> --
\> Repository URL: https://hg.python.org/cpython

\> \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
\> Python-checkins mailing list
\> Python-checkins@python.org
\> https://mail.python.org/mailman/listinfo/python-checkins

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: https://mail.python.org/mailman/options/python-dev/jelle.zijlstra%40gmail.com