aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrhe <rhe@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-05-23 12:10:38 +0000
committerrhe <rhe@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-05-23 12:10:38 +0000
commitbc54891f454440b0da8cd5e97ab8f96760ad67dd (patch)
tree3c45b82dd42c87859b91980bdd614f7d82011bf0
parent5453a63f5a6e4af5a19c25238e0406ac6b0b6941 (diff)
downloadruby-bc54891f454440b0da8cd5e97ab8f96760ad67dd.tar.gz
openssl: Avoid reference to unset global variable in Init_openssl()
* ext/openssl/ossl.c (Init_openssl): Avoid reference to unset global variable. ossl_raise() may be called before dOSSL is set. Since global variables default to 0 and the default value of dOSSL set in Init_openssl() is also Qfalse, there is no real issue but confusing. Patch by Bertram Scharpf <software@bertram-scharpf.de> [ruby-core:58264] [Bug #9101] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55135 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog9
-rw-r--r--ext/openssl/ossl.c16
2 files changed, 17 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index e3106401db..ad1704688a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+Mon May 23 21:09:06 2016 Kazuki Yamaguchi <k@rhe.jp>
+
+ * ext/openssl/ossl.c (Init_openssl): Avoid reference to unset global
+ variable. ossl_raise() may be called before dOSSL is set. Since
+ global variables default to 0 and the default value of dOSSL set in
+ Init_openssl() is also Qfalse, there is no real issue but confusing.
+ Patch by Bertram Scharpf <software@bertram-scharpf.de>
+ [ruby-core:58264] [Bug #9101]
+
Mon May 23 20:32:16 2016 Kazuki Yamaguchi <k@rhe.jp>
* ext/openssl/ossl_asn1.c, ext/openssl/ossl_bn.c,
diff --git a/ext/openssl/ossl.c b/ext/openssl/ossl.c
index 1f62c57a70..ad9c430de9 100644
--- a/ext/openssl/ossl.c
+++ b/ext/openssl/ossl.c
@@ -1177,14 +1177,6 @@ Init_openssl(void)
rb_global_variable(&eOSSLError);
/*
- * Verify callback Proc index for ext-data
- */
- if ((ossl_store_ctx_ex_verify_cb_idx = X509_STORE_CTX_get_ex_new_index(0, (void *)"ossl_store_ctx_ex_verify_cb_idx", 0, 0, 0)) < 0)
- ossl_raise(eOSSLError, "X509_STORE_CTX_get_ex_new_index");
- if ((ossl_store_ex_verify_cb_idx = X509_STORE_get_ex_new_index(0, (void *)"ossl_store_ex_verify_cb_idx", 0, 0, 0)) < 0)
- ossl_raise(eOSSLError, "X509_STORE_get_ex_new_index");
-
- /*
* Init debug core
*/
dOSSL = Qfalse;
@@ -1195,6 +1187,14 @@ Init_openssl(void)
rb_define_module_function(mOSSL, "errors", ossl_get_errors, 0);
/*
+ * Verify callback Proc index for ext-data
+ */
+ if ((ossl_store_ctx_ex_verify_cb_idx = X509_STORE_CTX_get_ex_new_index(0, (void *)"ossl_store_ctx_ex_verify_cb_idx", 0, 0, 0)) < 0)
+ ossl_raise(eOSSLError, "X509_STORE_CTX_get_ex_new_index");
+ if ((ossl_store_ex_verify_cb_idx = X509_STORE_get_ex_new_index(0, (void *)"ossl_store_ex_verify_cb_idx", 0, 0, 0)) < 0)
+ ossl_raise(eOSSLError, "X509_STORE_get_ex_new_index");
+
+ /*
* Get ID of to_der
*/
ossl_s_to_der = rb_intern("to_der");