Bug #4445 » verify_cb.diff
| ext/openssl/ossl.c | ||
|---|---|---|
|
args.proc = proc;
|
||
|
args.preverify_ok = ok ? Qtrue : Qfalse;
|
||
|
args.store_ctx = rctx;
|
||
|
ret = rb_ensure(ossl_call_verify_cb_proc, (VALUE)&args,
|
||
|
ossl_x509stctx_clear_ptr, rctx);
|
||
|
ret = rb_protect((VALUE(*)(VALUE))ossl_call_verify_cb_proc,
|
||
|
(VALUE)&args, &state);
|
||
|
ossl_x509stctx_clear_ptr(rctx);
|
||
|
}
|
||
|
if (ret == Qtrue) {
|
||
|
if (ret == Qtrue && !state) {
|
||
|
X509_STORE_CTX_set_error(ctx, X509_V_OK);
|
||
|
ok = 1;
|
||
|
}
|
||