1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/ext/openssl
rhe 118ee2a734 openssl: fix possible SEGV on race between SSLSocket#stop and #connect
* ext/openssl/ossl_ssl.c (ossl_ssl_stop): Don't free the SSL struct
  here. Since some methods such as SSLSocket#connect releases GVL,
  there is a chance of use after free if we free the SSL from another
  thread. SSLSocket#stop was documented as "prepares it for another
  connection" so this is a slightly incompatible change. However when
  this sentence was added (r30090, Add toplevel documentation for
  OpenSSL, 2010-12-06), it didn't actually. The current behavior is
  from r40304 (Correct shutdown behavior w.r.t GC., 2013-04-15).
  [ruby-core:74978] [Bug #12292]

* ext/openssl/lib/openssl/ssl.rb (sysclose): Update doc.

* test/openssl/test_ssl.rb: Test this.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55100 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-21 07:25:00 +00:00
..
lib openssl: fix possible SEGV on race between SSLSocket#stop and #connect 2016-05-21 07:25:00 +00:00
depend Update dependencies. 2016-04-11 11:50:00 +00:00
deprecation.rb handle ext/ as r53141 2015-12-16 05:31:54 +00:00
extconf.rb openssl/extconf.rb: NO SSL macros first 2016-05-09 00:05:33 +00:00
openssl_missing.c openssl: register ex_data index for X509_STORE{_CTX,} respectively 2016-05-19 04:53:05 +00:00
openssl_missing.h openssl: register ex_data index for X509_STORE{_CTX,} respectively 2016-05-19 04:53:05 +00:00
ossl.c openssl: fix SSL client example in documentation [ci skip] 2016-05-21 05:45:41 +00:00
ossl.h openssl: improve handling of password for encrypted PEM 2016-05-20 15:05:25 +00:00
ossl_asn1.c * ext/openssl/*: Remove svn commit id macros to make sync easier 2015-09-22 16:12:15 +00:00
ossl_asn1.h * ext/openssl/*: Remove svn commit id macros to make sync easier 2015-09-22 16:12:15 +00:00
ossl_bio.c prefer rb_syserr_fail 2015-12-23 08:57:48 +00:00
ossl_bio.h * ext/openssl/*: Remove svn commit id macros to make sync easier 2015-09-22 16:12:15 +00:00
ossl_bn.c openssl: fix equality test methods of OpenSSL::BN 2016-05-18 02:55:45 +00:00
ossl_bn.h * ext/openssl/*: Remove svn commit id macros to make sync easier 2015-09-22 16:12:15 +00:00
ossl_cipher.c * ext/**/*.c (*_memsize): same as r52986 for extensions. 2015-12-09 01:01:17 +00:00
ossl_cipher.h * ext/openssl/*: Remove svn commit id macros to make sync easier 2015-09-22 16:12:15 +00:00
ossl_config.c * ext/openssl/*: Remove svn commit id macros to make sync easier 2015-09-22 16:12:15 +00:00
ossl_config.h * ext/openssl/*: Remove svn commit id macros to make sync easier 2015-09-22 16:12:15 +00:00
ossl_digest.c * ext/openssl/*: Remove svn commit id macros to make sync easier 2015-09-22 16:12:15 +00:00
ossl_digest.h * ext/openssl/*: Remove svn commit id macros to make sync easier 2015-09-22 16:12:15 +00:00
ossl_engine.c openssl: report errors in OpenSSL error queue when clear it 2016-05-18 04:07:45 +00:00
ossl_engine.h * ext/openssl/*: Remove svn commit id macros to make sync easier 2015-09-22 16:12:15 +00:00
ossl_hmac.c * ext/openssl/*: Remove svn commit id macros to make sync easier 2015-09-22 16:12:15 +00:00
ossl_hmac.h * ext/openssl/*: Remove svn commit id macros to make sync easier 2015-09-22 16:12:15 +00:00
ossl_ns_spki.c openssl: report errors in OpenSSL error queue when clear it 2016-05-18 04:07:45 +00:00
ossl_ns_spki.h * ext/openssl/*: Remove svn commit id macros to make sync easier 2015-09-22 16:12:15 +00:00
ossl_ocsp.c ext: use RARRAY_AREF 2015-11-05 01:09:17 +00:00
ossl_ocsp.h * ext/openssl/*: Remove svn commit id macros to make sync easier 2015-09-22 16:12:15 +00:00
ossl_pkcs5.c * ext/openssl/*: Remove svn commit id macros to make sync easier 2015-09-22 16:12:15 +00:00
ossl_pkcs5.h
ossl_pkcs7.c openssl: report errors in OpenSSL error queue when clear it 2016-05-18 04:07:45 +00:00
ossl_pkcs7.h * ext/openssl/*: Remove svn commit id macros to make sync easier 2015-09-22 16:12:15 +00:00
ossl_pkcs12.c openssl: fix OpenSSL error queue leak in OpenSSL::PKCS12.new 2016-05-18 07:59:09 +00:00
ossl_pkcs12.h * ext/openssl/ossl_pkcs12*: Remove svn commit id macro 2015-09-23 13:23:02 +00:00
ossl_pkey.c openssl: improve handling of password for encrypted PEM 2016-05-20 15:05:25 +00:00
ossl_pkey.h * ext/openssl/*: Remove svn commit id macros to make sync easier 2015-09-22 16:12:15 +00:00
ossl_pkey_dh.c openssl: clear OpenSSL error queue before return to Ruby 2016-05-18 04:07:47 +00:00
ossl_pkey_dsa.c openssl: improve handling of password for encrypted PEM 2016-05-20 15:05:25 +00:00
ossl_pkey_ec.c openssl: add OpenSSL::PKey::EC#private? and #public? 2016-05-21 05:30:48 +00:00
ossl_pkey_rsa.c openssl: improve handling of password for encrypted PEM 2016-05-20 15:05:25 +00:00
ossl_rand.c * ext/openssl/ossl_rand.c (ossl_rand_bytes): RAND_bytes could 2015-11-30 20:29:02 +00:00
ossl_rand.h * ext/openssl/*: Remove svn commit id macros to make sync easier 2015-09-22 16:12:15 +00:00
ossl_ssl.c openssl: fix possible SEGV on race between SSLSocket#stop and #connect 2016-05-21 07:25:00 +00:00
ossl_ssl.h ext/openssl/ossl_ssl.c: hide globals 2015-12-01 22:49:05 +00:00
ossl_ssl_session.c * ext/openssl/ossl.h: avoid to build failure of Windows environment. 2015-01-03 02:50:31 +00:00
ossl_version.h * ext/openssl/*: Remove svn commit id macros to make sync easier 2015-09-22 16:12:15 +00:00
ossl_x509.c * ext/openssl/*: Remove svn commit id macros to make sync easier 2015-09-22 16:12:15 +00:00
ossl_x509.h * ext/openssl/*: Remove svn commit id macros to make sync easier 2015-09-22 16:12:15 +00:00
ossl_x509attr.c openssl: check argument type in OpenSSL::X509::Attribute#value= 2016-05-19 04:12:57 +00:00
ossl_x509cert.c openssl: clear OpenSSL error queue before return to Ruby 2016-05-18 04:07:47 +00:00
ossl_x509crl.c openssl: clear OpenSSL error queue before return to Ruby 2016-05-18 04:07:47 +00:00
ossl_x509ext.c * ext/openssl/*: Remove svn commit id macros to make sync easier 2015-09-22 16:12:15 +00:00
ossl_x509name.c * ext/openssl/*: Remove svn commit id macros to make sync easier 2015-09-22 16:12:15 +00:00
ossl_x509req.c openssl: clear OpenSSL error queue before return to Ruby 2016-05-18 04:07:47 +00:00
ossl_x509revoked.c ext: use RARRAY_AREF 2015-11-05 01:09:17 +00:00
ossl_x509store.c openssl: register ex_data index for X509_STORE{_CTX,} respectively 2016-05-19 04:53:05 +00:00
ruby_missing.h * ext/openssl/*: Remove svn commit id macros to make sync easier 2015-09-22 16:12:15 +00:00