aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--ext/openssl/ossl_bn.c2
-rw-r--r--test/openssl/test_bn.rb10
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 <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