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 mryan1539
Recipients mryan1539, rhettinger, vstinner
Date 2016-04-12.15:57:52
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <CACDhJGGW3z=GcO55b7DxMf_AxAFYUQQyZo0fagDf0XOu2RuyPA@mail.gmail.com>
In-reply-to <1460448947.52.0.566628347647.issue26735@psf.upfronthosting.co.za>
Content
The new patch looks fine; I used __sun__ rather than sun out of habit
(C standard requires
system specific macros be in the reserved namespace), but either will work.

I found the original problem through debugging with GDB, so I know
getrandom() was being
called, and the test case I provided (taken from Lib/Random.py) fails
without the patch,
and succeeds with it.

Oddly, the blog post you linked to describes getrandom as:
"Recent Linux kernels have a getrandom(2) system call that reads
between 1 and 1024 bytes of randomness"

But no such limit current exists in the Linux version that I can see;
however, the Solaris
version definitely does have that limit:
https://docs.oracle.com/cd/E53394_01/html/E54765/getrandom-2.html

On Tue, Apr 12, 2016 at 1:15 AM, STINNER Victor <report@bugs.python.org> wrote:
>
> STINNER Victor added the comment:
>
>> I've attached a possible patch for this issue, against the 3.5.1 source
> tree.
>
> I guess that you are already using Python 3.5.1 which uses getrandom(). You should try to confirm using strace.
>
> I updated your patch. I replaced "#if defined(__sun__)" with "#ifdef sun", since "#ifdef sun" looks more common in the Python code base, and I never saw "#if defined(__sun__)" in the Python code base.
>
> I also avoided the new len variable, I reused the n variable.
>
> I don't have Solaris, so I cannot test. I didn't find getrandom() manual page neither, I only found this blog post which doesn't mention the 1024 bytes limitation on Solaris:
> https://blogs.oracle.com/darren/entry/solaris_new_system_calls_getentropy
>
> ----------
> Added file: http://bugs.python.org/file42443/urandom_solaris.patch
>
> _______________________________________
> Python tracker <report@bugs.python.org>
> <http://bugs.python.org/issue26735>
> _______________________________________
History
Date User Action Args
2016-04-12 15:57:52mryan1539setrecipients: + mryan1539, rhettinger, vstinner
2016-04-12 15:57:52mryan1539linkissue26735 messages
2016-04-12 15:57:52mryan1539create