summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/openssl/ossl_x509store.c3
-rw-r--r--test/openssl/test_x509store.rb21
2 files changed, 15 insertions, 9 deletions
diff --git a/ext/openssl/ossl_x509store.c b/ext/openssl/ossl_x509store.c
index f7c73d01e8..d29e6f5e42 100644
--- a/ext/openssl/ossl_x509store.c
+++ b/ext/openssl/ossl_x509store.c
@@ -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;
diff --git a/test/openssl/test_x509store.rb b/test/openssl/test_x509store.rb
index b3212e4bd4..4b02e6664f 100644
--- a/test/openssl/test_x509store.rb
+++ b/test/openssl/test_x509store.rb
@@ -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