diff options
Diffstat (limited to 'Python/random.c')
| -rw-r--r-- | Python/random.c | 8 | 
1 files changed, 6 insertions, 2 deletions
| diff --git a/Python/random.c b/Python/random.c index 53518c2..e5caa82 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;      } | 
