Fix bug in X509_V_FLAG_IGNORE_CRITICAL CRL handling.
authorDr. Stephen Henson <steve@openssl.org>
Thu, 9 Jan 2014 22:47:22 +0000 (22:47 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Thu, 9 Jan 2014 22:56:40 +0000 (22:56 +0000)
(cherry picked from commit 8f4077ca69076cebaca51b7b666db1ed49e46b9e)

crypto/x509/x509_vfy.c

index 5195ffef264d647dec2205cfcbbf1df02f1419f5..920066aeba3b0ad91c6f635259bdcc6a7c82c68f 100644 (file)
@@ -1462,10 +1462,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)