Project

General

Profile

Bug #4055

segfault in OpenSSL::SSLSocket#cert

Added by ohai (Ippei Obayashi) over 9 years ago. Updated almost 9 years ago.

Status:
Closed
Priority:
Normal
Target version:
ruby -v:
ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux]
Backport:
[ruby-dev:42573]

Description

=begin
以下のようにすると Segmentation fault を起こします。
ruby-1.9.2-p0 -e 'require "openssl"; OpenSSL::SSL::SSLSocket.new(STDIN).cert'

以下のパッチで直ると思います。
--- a/ext/openssl/ossl_ssl.c
+++ b/ext/openssl/ossl_ssl.c
@@ -1337,7 +1337,7 @@ ossl_ssl_get_cert(VALUE self)
X509 *cert = NULL;

  Data_Get_Struct(self, SSL, ssl);
  • if (ssl) {
  • if (!ssl) { rb_warning("SSL session is not started yet."); return Qnil; }

バックトレースは以下の通り。


-e:1: [BUG] Segmentation fault
ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux]

-- control frame ----------
c:0004 p:---- s:0009 b:0009 l:000008 d:000008 CFUNC :cert
c:0003 p:0044 s:0006 b:0006 l:0017f8 d:000118 EVAL -e:1
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:0000 s:0002 b:0002 l:0017f8 d:0017f8 TOP


-- Ruby level backtrace information ----------------------------------------
-e:1:in <main>'
-e:1:in
cert'

-- C level backtrace information -------------------------------------------
/home/ohai/opt/ruby-1.9.2-p0/lib/libruby.so.1.9(rb_vm_bugreport+0x5f) [0x7fc3ef8ddc1f]
/home/ohai/opt/ruby-1.9.2-p0/lib/libruby.so.1.9 [0x7fc3ef7bb0dc]
/home/ohai/opt/ruby-1.9.2-p0/lib/libruby.so.1.9(rb_bug+0xb3) [0x7fc3ef7bb253]
/home/ohai/opt/ruby-1.9.2-p0/lib/libruby.so.1.9 [0x7fc3ef86ca9c]
/lib/libpthread.so.0 [0x7fc3ef548a80]
/usr/lib/libssl.so.0.9.8(SSL_get_certificate+0) [0x7fc3e9ec57f0]
/home/ohai/opt/ruby-1.9.2-p0/lib/ruby/1.9.1/x86_64-linux/openssl.so [0x7fc3ea10fc77]
/home/ohai/opt/ruby-1.9.2-p0/lib/libruby.so.1.9 [0x7fc3ef8d7f1f]
/home/ohai/opt/ruby-1.9.2-p0/lib/libruby.so.1.9 [0x7fc3ef8cbf09]
/home/ohai/opt/ruby-1.9.2-p0/lib/libruby.so.1.9 [0x7fc3ef8d2103]
/home/ohai/opt/ruby-1.9.2-p0/lib/libruby.so.1.9(rb_iseq_eval_main+0x27c) [0x7fc3ef8d247c]
/home/ohai/opt/ruby-1.9.2-p0/lib/libruby.so.1.9 [0x7fc3ef7bf29b]
/home/ohai/opt/ruby-1.9.2-p0/lib/libruby.so.1.9(ruby_exec_node+0x19) [0x7fc3ef7bf2c9]
/home/ohai/opt/ruby-1.9.2-p0/lib/libruby.so.1.9(ruby_run_node+0x1e) [0x7fc3ef7c0e0e]
ruby-1.9.2-p0(main+0x4f) [0x40099f]
/lib/libc.so.6(__libc_start_main+0xe6) [0x7fc3ee93d1a6]
ruby-1.9.2-p0 [0x400889]

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html
=end

#1

Updated by naruse (Yui NARUSE) over 9 years ago

  • Status changed from Open to Assigned
  • Assignee set to nahi (Hiroshi Nakamura)

=begin

=end

#2

Updated by Anonymous over 9 years ago

  • Status changed from Assigned to Closed
  • % Done changed from 0 to 100

=begin
This issue was solved with changeset r29784.
Ippei, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.

=end

Also available in: Atom PDF