lib/securerandom.rb: Fix the check of availability of Random.urandom

Random.urandom raises a RuntimeError if it is unavailable.
[Bug #13885]
This commit is contained in:
Yusuke Endoh 2022-02-16 14:15:11 +09:00
Родитель e7d76fe2b0
Коммит b9851c7e1b
1 изменённых файлов: 5 добавлений и 4 удалений

Просмотреть файл

@ -72,8 +72,11 @@ module SecureRandom
ret
end
ret = Random.urandom(1)
if ret.nil?
begin
# Check if Random.urandom is available
Random.urandom(1)
alias gen_random gen_random_urandom
rescue RuntimeError
begin
require 'openssl'
rescue NoMethodError
@ -81,8 +84,6 @@ module SecureRandom
else
alias gen_random gen_random_openssl
end
else
alias gen_random gen_random_urandom
end
public :gen_random