From: Dr. Stephen Henson Date: Thu, 9 Jan 2014 22:47:22 +0000 (+0000) Subject: Fix bug in X509_V_FLAG_IGNORE_CRITICAL CRL handling. X-Git-Tag: OpenSSL_1_0_2-beta1~102 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=50701af9d5bbb7950271250178a84b1ca74e7db3;p=openssl Fix bug in X509_V_FLAG_IGNORE_CRITICAL CRL handling. (cherry picked from commit 8f4077ca69076cebaca51b7b666db1ed49e46b9e) --- diff --git a/crypto/x509/x509_vfy.c b/crypto/x509/x509_vfy.c index 677d9579d5..bcbf9ea550 100644 --- a/crypto/x509/x509_vfy.c +++ b/crypto/x509/x509_vfy.c @@ -1586,10 +1586,9 @@ static int cert_crl(X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x) * a certificate was revoked. This has since been changed since * critical extension can change the meaning of CRL entries. */ - if (crl->flags & EXFLAG_CRITICAL) + if (!(ctx->param->flags & X509_V_FLAG_IGNORE_CRITICAL) + && (crl->flags & EXFLAG_CRITICAL)) { - if (ctx->param->flags & X509_V_FLAG_IGNORE_CRITICAL) - return 1; ctx->error = X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION; ok = ctx->verify_cb(0, ctx); if(!ok)