Fix segfault with old OpenSSL

Issue #9592 has been updated by Nathan Youngman.

We saw this error in production with Ruby 2.1.1p76 on Heroku, but I
don’t know how to reproduce it. Is a backport to 2.1.1 planned? Or
including the fix in 2.1.2?

Apr 22 08:03:01 app/worker.1: 
/app/vendor/ruby-2.1.1/lib/ruby/2.1.0/net/http.rb:920: [BUG] 
Segmentation fault at 0x00000000000000
Apr 22 08:03:01 app/worker.1:  ruby 2.1.1p76 (2014-02-24 revision 45161) 
[x86_64-linux]

Bug #9592: Fix segfault with old OpenSSL

  • Author: Nobuyoshi N.
  • Status: Closed
  • Priority: Normal
  • Assignee:
  • Category: ext/openssl
  • Target version: current: 2.2.0
  • ruby -v: r45270
  • Backport: 1.9.3: DONE, 2.0.0: DONE, 2.1: REQUIRED

r44572 以降、古いOpenSSL(0.9.8kで確認)で、SSL connectionに失敗したときにSEGVすることがあります。

$ ruby -rnet/https -e 
'Net::HTTP.get(URI("https://brandymelvilleusa.com"))'
/app/vendor/ruby-2.0.0/lib/ruby/2.0.0/net/http.rb:918: [BUG] 
Segmentation fault
ruby 2.0.0p451 (2014-02-24 revision 45167) [x86_64-linux]

r45271 で修正したのでバックポートをお願いします。