From 5bab1304af25a843728dbcd2f3594913740aecb0 Mon Sep 17 00:00:00 2001 From: "Urabe, Shyouhei" Date: Tue, 14 May 2019 11:44:20 +0900 Subject: fix visibility of SecureRandom.gen_random Aliasing a method preserves its visibility. These aliases turn formerly-public methods into private. Should make them public again. [Bug #15847] --- lib/securerandom.rb | 2 ++ test/test_securerandom.rb | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/lib/securerandom.rb b/lib/securerandom.rb index 37835bf7df..205cb70be5 100644 --- a/lib/securerandom.rb +++ b/lib/securerandom.rb @@ -85,6 +85,7 @@ module SecureRandom class << self remove_method :gen_random alias gen_random gen_random_openssl + public :gen_random end end return gen_random(n) @@ -94,6 +95,7 @@ module SecureRandom class << self remove_method :gen_random alias gen_random gen_random_urandom + public :gen_random end end return gen_random(n) diff --git a/test/test_securerandom.rb b/test/test_securerandom.rb index 69d24c0417..1bc35f91f8 100644 --- a/test/test_securerandom.rb +++ b/test/test_securerandom.rb @@ -184,4 +184,11 @@ end assert_equal(idx, @it.send(:gen_random_openssl, idx).size) end end + + def test_repeated_gen_random + assert_nothing_raised NoMethodError, '[ruby-core:92633] [Bug #15847]' do + @it.gen_random(1) + @it.gen_random(1) + end + end end -- cgit v1.2.3