# HG changeset patch # User Kim Alvefur # Date 1648910007 -7200 # Node ID e54b8a5e35adf8e7e5d5a5b32d38daa58410ac40 # Parent b33558969b3eb1a08f7b9dd5f3007840c82a9f44 util.random: Test whether util.crand works before using it (fix #1734) util.crand can be configured at compile time to use the Linux getrandom() system call, available from Linux 3.17, but it is still possible to load it with an older kernel lacking that system call, where attempting to use it throws an ENOSYS error. By testing for this on load we can fall back to /dev/urandom in this case. diff -r b33558969b3e -r e54b8a5e35ad util/random.lua --- a/util/random.lua Mon Mar 28 14:53:24 2022 +0100 +++ b/util/random.lua Sat Apr 02 16:33:27 2022 +0200 @@ -7,7 +7,7 @@ -- local ok, crand = pcall(require, "util.crand"); -if ok then return crand; end +if ok and pcall(crand.bytes, 1) then return crand; end local urandom, urandom_err = io.open("/dev/urandom", "r");