diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | ext/openssl/ossl_bn.c | 2 | ||||
-rw-r--r-- | test/openssl/test_bn.rb | 10 |
3 files changed, 15 insertions, 2 deletions
@@ -1,3 +1,8 @@ +Sun Jan 30 03:29:47 2011 NARUSE, Yui <naruse@ruby-lang.org> + + * ext/openssl/ossl_bn.c (GetBNPtr): add missing nil case. + patched by Martin Bosslet. [ruby-core:34987] + Sun Jan 30 01:02:28 2011 KOSAKI Motohiro <kosaki.motohiro@gmail.com> * include/ruby/ruby.h: Added NUM2MODET() and MODET2NUM() default definition. diff --git a/ext/openssl/ossl_bn.c b/ext/openssl/ossl_bn.c index 0a91697aa1..da62f07f46 100644 --- a/ext/openssl/ossl_bn.c +++ b/ext/openssl/ossl_bn.c @@ -70,6 +70,8 @@ GetBNPtr(VALUE obj) } WrapBN(cBN, obj, bn); /* Handle potencial mem leaks */ break; + case T_NIL: + break; default: ossl_raise(rb_eTypeError, "Cannot convert into OpenSSL::BN"); } diff --git a/test/openssl/test_bn.rb b/test/openssl/test_bn.rb index 769b7ed831..7136de9a27 100644 --- a/test/openssl/test_bn.rb +++ b/test/openssl/test_bn.rb @@ -9,8 +9,14 @@ class OpenSSL::TestBN < Test::Unit::TestCase end def test_prime_p - OpenSSL::BN.new((2 ** 107 - 1).to_s(16), 16).prime? - OpenSSL::BN.new((2 ** 127 - 1).to_s(16), 16).prime?(1) + assert_equal(true, OpenSSL::BN.new((2 ** 107 - 1).to_s(16), 16).prime?) + assert_equal(true, OpenSSL::BN.new((2 ** 127 - 1).to_s(16), 16).prime?(1)) + end + + def test_cmp_nil + bn = OpenSSL::BN.new('1') + assert_equal(false, bn == nil) + assert_equal(true, bn != nil) end end |