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; 
   | 
||
| 
     	} 
   | 
||