From 5323407175fb44c366ce70577895009f640be8f8 Mon Sep 17 00:00:00 2001 From: naruse Date: Sat, 29 Jan 2011 18:48:24 +0000 Subject: [PATCH] * ext/openssl/ossl_bn.c (GetBNPtr): add missing nil case. patched by Martin Bosslet. [ruby-core:34987] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30724 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ ext/openssl/ossl_bn.c | 2 ++ test/openssl/test_bn.rb | 10 ++++++++-- 3 files changed, 15 insertions(+), 2 deletions(-) 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