diff --git a/ChangeLog b/ChangeLog index d688e2b9db..457506ac74 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sun Jan 30 03:29:47 2011 NARUSE, Yui + + * 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 * 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