aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2018-10-17 16:45:36 +0900
committerKazuki Yamaguchi <k@rhe.jp>2018-10-17 16:45:36 +0900
commitcad80049c41863d0c3834c7aac5af17d419093e9 (patch)
treed3f2801c85f0512103d0a6058b4c1a2f71a22cf6
parent307db4904bd6f911b3d9f5ee0066da4763a77983 (diff)
parentf653cfa43f0f20e8c440122ea982382b6228e7f5 (diff)
downloadruby-openssl-cad80049c41863d0c3834c7aac5af17d419093e9.tar.gz
Merge branch 'ky/x509name-cmp-bugfix' into maint-2.0
* ky/x509name-cmp-bugfix: x509name: fix OpenSSL::X509::Name#{cmp,<=>}
-rw-r--r--ext/openssl/ossl_x509name.c2
-rw-r--r--test/test_x509name.rb14
2 files changed, 11 insertions, 5 deletions
diff --git a/ext/openssl/ossl_x509name.c b/ext/openssl/ossl_x509name.c
index f064cf65..fe845593 100644
--- a/ext/openssl/ossl_x509name.c
+++ b/ext/openssl/ossl_x509name.c
@@ -362,7 +362,7 @@ ossl_x509name_cmp(VALUE self, VALUE other)
result = ossl_x509name_cmp0(self, other);
if (result < 0) return INT2FIX(-1);
- if (result > 1) return INT2FIX(1);
+ if (result > 0) return INT2FIX(1);
return INT2FIX(0);
}
diff --git a/test/test_x509name.rb b/test/test_x509name.rb
index f8fabafe..b1281231 100644
--- a/test/test_x509name.rb
+++ b/test/test_x509name.rb
@@ -358,10 +358,16 @@ class OpenSSL::TestX509Name < OpenSSL::TestCase
end
def test_spaceship
- n1 = OpenSSL::X509::Name.parse 'CN=a'
- n2 = OpenSSL::X509::Name.parse 'CN=b'
-
- assert_equal(-1, n1 <=> n2)
+ n1 = OpenSSL::X509::Name.new([["CN", "a"]])
+ n2 = OpenSSL::X509::Name.new([["CN", "a"]])
+ n3 = OpenSSL::X509::Name.new([["CN", "ab"]])
+
+ assert_equal 0, n1 <=> n2
+ assert_equal -1, n1 <=> n3
+ assert_equal 0, n2 <=> n1
+ assert_equal -1, n2 <=> n3
+ assert_equal 1, n3 <=> n1
+ assert_equal 1, n3 <=> n2
end
def name_hash(name)