aboutsummaryrefslogtreecommitdiffstats
path: root/patches/ruby/r8532-X509_STORE_CTX-flags.patch
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2016-04-07 01:36:47 +0900
committerKazuki Yamaguchi <k@rhe.jp>2016-04-07 01:36:47 +0900
commitde06b35e47f0977244e6eeb8a2eb167320157394 (patch)
tree34af6fb3036fd62d8ac813fa3d2499914d08bc59 /patches/ruby/r8532-X509_STORE_CTX-flags.patch
parentb42d3e56e62572cb7fbf8b060648a81ed0c79be5 (diff)
downloadpoe-de06b35e47f0977244e6eeb8a2eb167320157394.tar.gz
rakefile: パッチを自分で管理することにした。まだ途中だけど Ruby 1.8.0 以降ならコンパイルできる
Diffstat (limited to 'patches/ruby/r8532-X509_STORE_CTX-flags.patch')
-rw-r--r--patches/ruby/r8532-X509_STORE_CTX-flags.patch45
1 files changed, 45 insertions, 0 deletions
diff --git a/patches/ruby/r8532-X509_STORE_CTX-flags.patch b/patches/ruby/r8532-X509_STORE_CTX-flags.patch
new file mode 100644
index 0000000..d02e853
--- /dev/null
+++ b/patches/ruby/r8532-X509_STORE_CTX-flags.patch
@@ -0,0 +1,45 @@
+diff --git a/ext/openssl/ossl_x509store.c b/ext/openssl/ossl_x509store.c
+index b08f90c..5dba733 100644
+--- a/ext/openssl/ossl_x509store.c
++++ b/ext/openssl/ossl_x509store.c
+@@ -358,7 +358,7 @@ static VALUE ossl_x509stctx_set_time(VALUE, VALUE);
+ static VALUE
+ ossl_x509stctx_initialize(int argc, VALUE *argv, VALUE self)
+ {
+- VALUE store, cert, chain;
++ VALUE store, cert, chain, t;
+ X509_STORE_CTX *ctx;
+ X509_STORE *x509st;
+ X509 *x509 = NULL;
+@@ -380,7 +380,8 @@ ossl_x509stctx_initialize(int argc, VALUE *argv, VALUE self)
+ ossl_x509stctx_set_purpose(self, rb_iv_get(store, "@purpose"));
+ ossl_x509stctx_set_trust(self, rb_iv_get(store, "@trust"));
+ #endif
+- ossl_x509stctx_set_time(self, rb_iv_get(store, "@time"));
++ if (!NIL_P(t = rb_iv_get(store, "@time")))
++ ossl_x509stctx_set_time(self, t);
+ rb_iv_set(self, "@verify_callback", rb_iv_get(store, "@verify_callback"));
+ rb_iv_set(self, "@cert", cert);
+
+@@ -546,17 +547,11 @@ static VALUE
+ ossl_x509stctx_set_time(VALUE self, VALUE time)
+ {
+ X509_STORE_CTX *store;
++ long t;
+
+- if(NIL_P(time)) {
+- GetX509StCtx(self, store);
+- store->flags &= ~X509_V_FLAG_USE_CHECK_TIME;
+- }
+- else {
+- long t = NUM2LONG(rb_Integer(time));
+-
+- GetX509StCtx(self, store);
+- X509_STORE_CTX_set_time(store, 0, t);
+- }
++ t = NUM2LONG(rb_Integer(time));
++ GetX509StCtx(self, store);
++ X509_STORE_CTX_set_time(store, 0, t);
+
+ return time;
+ }