[PATCH 2/2] linux: use __getrandom_nocancel in getentropy
Cristian Rodríguez
cristian@rodriguez.im
Sun Feb 9 03:14:28 GMT 2025
On Sat, Feb 8, 2025 at 2:05 PM Cristian Rodríguez <cristian@rodriguez.im> wrote:
>
> It must use the VDSO implementation if available instead of a raw
> syscall.
>
> Signed-off-by: Cristian Rodríguez <cristian@rodriguez.im>
I looked at the other implementations around and needs this needs to
- be made POSIX.2024 compatible, where the only possible errors are
EINVAL and maybe ENOSYS.
- The different BSDs implementations where this function originally
comes from all abort on irrecoverable errors, either by explicit
raise(SIGKILL) or because getentropy is just a wrapper against
arc4random_buf
I got to the poin that I think it has just ot be implemented like this now:
int
getentropy (void *buffer, size_t length)
{
/* The interface is documented to return EINVAL for buffer lengths
longer than 256 bytes. */
if (length > GETENTROPY_MAX)
{
__set_errno (EINVAL);
return -1;
}
__arc4random_buf(buffer, length);
return 0;
}
Will that fly here ?
More information about the Libc-alpha
mailing list