From: Bruno Haible Date: Sun, 9 May 2021 14:51:10 +0000 (+0200) Subject: getrandom: Fail with ENOSYS when the system has no randomness source. X-Git-Tag: v1.0~2904 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=2bb536310a329ad68dbe20ceb55787f12bf682d5;p=gnulib.git getrandom: Fail with ENOSYS when the system has no randomness source. * lib/getrandom.c (getrandom): When open() fails, set errno to ENOSYS. --- diff --git a/ChangeLog b/ChangeLog index 2de27efb4e..e84bc512eb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2021-05-09 Bruno Haible + + getrandom: Fail with ENOSYS when the system has no randomness source. + * lib/getrandom.c (getrandom): When open() fails, set errno to ENOSYS. + 2021-05-09 Bruno Haible free tests: Avoid test failure on glibc < 2.15. diff --git a/lib/getrandom.c b/lib/getrandom.c index 41212fb329..6160118336 100644 --- a/lib/getrandom.c +++ b/lib/getrandom.c @@ -178,7 +178,10 @@ getrandom (void *buffer, size_t length, unsigned int flags) + (flags & GRND_NONBLOCK ? O_NONBLOCK : 0)); fd = open (randdevice[devrandom], oflags); if (fd < 0) - return fd; + { + errno = ENOSYS; + return -1; + } randfd[devrandom] = fd; }