From a9a4ac217e58ba0e4244ba4e20f466f6db6accf5 Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Fri, 16 Aug 2013 20:44:38 +0200 Subject: Issue #18756: Improve error reporting in os.urandom() when the failure is due to something else than /dev/urandom not existing. --- Python/random.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'Python/random.c') diff --git a/Python/random.c b/Python/random.c index 53518c2ebe..e5caa828b5 100644 --- a/Python/random.c +++ b/Python/random.c @@ -165,8 +165,12 @@ dev_urandom_python(char *buffer, Py_ssize_t size) Py_END_ALLOW_THREADS if (fd < 0) { - PyErr_SetString(PyExc_NotImplementedError, - "/dev/urandom (or equivalent) not found"); + if (errno == ENOENT || errno == ENXIO || + errno == ENODEV || errno == EACCES) + PyErr_SetString(PyExc_NotImplementedError, + "/dev/urandom (or equivalent) not found"); + else + PyErr_SetFromErrno(PyExc_OSError); return -1; } -- cgit v1.2.1