]> git.ipfire.org Git - thirdparty/glibc.git/commit
Linux: Check for 0 return value from vDSO getrandom probe
authorFlorian Weimer <fweimer@redhat.com>
Sun, 15 Dec 2024 16:05:25 +0000 (17:05 +0100)
committerFlorian Weimer <fweimer@redhat.com>
Sun, 15 Dec 2024 16:05:25 +0000 (17:05 +0100)
commitb933e5cef63a6c136fe57de29eba7abc51b678de
treea346c92ed070ec83a7cd97e95133e5d8d84360c3
parent6f5e1e4e98d66fd367f9d9c5ddc5947bfadda26b
Linux: Check for 0 return value from vDSO getrandom probe

As of Linux 6.13, there is no code in the vDSO that declines this
initialization request with the special ~0UL state size.  If the vDSO
has the function, the call succeeds and returns 0.  It's expected
that the code would follow the “a negative value indicating an error”
convention, as indicated in the __cvdso_getrandom_data function
comment, so that INTERNAL_SYSCALL_ERROR_P on glibc's side would return
true.  This commit changes the commit to check for zero to indicate
success instead, which covers potential future non-zero success
return values and error returns.

Fixes commit 4f5704ea347e52ac3f272d1341da10aed6e9973e ("powerpc: Use
correct procedure call standard for getrandom vDSO call (bug 32440)").
sysdeps/unix/sysv/linux/getrandom.c