[ruby/openssl] x509store: emit warning if arguments are given to X509::Store.new

Anything passed to OpenSSL::X509::Store.new was always ignored. Let's
emit an explicit warning to not confuse users.

https://github.com/ruby/openssl/commit/d173700eeb
This commit is contained in:
Kazuki Yamaguchi 2020-08-08 19:28:11 +09:00
Родитель 88b8b3ac15
Коммит 08c99a4208
2 изменённых файлов: 15 добавлений и 9 удалений

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

@ -192,8 +192,9 @@ ossl_x509store_initialize(int argc, VALUE *argv, VALUE self)
{
X509_STORE *store;
/* BUG: This method takes any number of arguments but appears to ignore them. */
GetX509Store(self, store);
if (argc != 0)
rb_warn("OpenSSL::X509::Store.new does not take any arguments");
#if !defined(HAVE_OPAQUE_OPENSSL)
/* [Bug #405] [Bug #1678] [Bug #3000]; already fixed? */
store->ex_data.sk = NULL;

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

@ -16,14 +16,11 @@ class OpenSSL::TestX509Store < OpenSSL::TestCase
@ee2 = OpenSSL::X509::Name.parse("/DC=org/DC=ruby-lang/CN=EE2")
end
def test_nosegv_on_cleanup
cert = OpenSSL::X509::Certificate.new
store = OpenSSL::X509::Store.new
ctx = OpenSSL::X509::StoreContext.new(store, cert, [])
EnvUtil.suppress_warning do
ctx.cleanup
end
ctx.verify
def test_store_new
# v2.3.0 emits explicit warning
assert_warning(/new does not take any arguments/) {
OpenSSL::X509::Store.new(123)
}
end
def test_add_file_path
@ -255,6 +252,14 @@ class OpenSSL::TestX509Store < OpenSSL::TestCase
ctx = OpenSSL::X509::StoreContext.new(store)
assert_raise(NoMethodError) { ctx.dup }
end
def test_ctx_cleanup
# Deprecated in Ruby 1.9.3
cert = OpenSSL::X509::Certificate.new
store = OpenSSL::X509::Store.new
ctx = OpenSSL::X509::StoreContext.new(store, cert, [])
assert_warning(/cleanup/) { ctx.cleanup }
end
end
end