青木です。

以下のように、CVS HEAD の openssl が SEGV します。

  % cat ~/openssl-bug.rb
  require 'openssl'

  dn = [
    ["DC", "org"],
    ["DC", "ruby-lang"],
    ["CN", "GOTOU Yuuzou"],
    ["emailAddress", "gotoyuzo / ruby-lang.org"],
    ["serialNumber", "123"],
  ]

  ARGV[0].to_i.times do
    name = OpenSSL::X509::Name.new(dn)
    name_from_der = OpenSSL::X509::Name.new(name.to_der)
    name_from_der.to_s == name.to_s
  end

  % ruby ~/openssl-bug.rb 1 && echo OK
  OK
  % ruby ~/openssl-bug.rb 10 && echo OK
  OK
  % ruby ~/openssl-bug.rb 100 && echo OK
  OK
  % ruby ~/openssl-bug.rb 1000
  /home/aamine/openssl-bug.rb:14: [BUG] Segmentation fault
  ruby 1.9.0 (2004-08-09) [i686-linux]

  zsh: 6176 abort (core dumped)  ruby ~/openssl-bug.rb 1000

環境は以下の通りです。

  * ruby CVS HEAD 2004-08-09
  * OpenSSL 0.9.7b, 0.9.7d
  * gcc 2.95.3 -g, -g -O0, -O2
  * gcc 3.2.3 -g -O0
  * GNU libc 2.2.5
  * Linux 2.4.22 i686

元々は make test-all で発生していたので、そこから最小スクリプトを
切り出しました。落ちる場所はどちらも同じで to_s のあたりです。

なお 2004-05-01 あたりまでさかのぼってもやっぱり落ちます。
-------------------------------------------------------------------
青木峰郎