From bd8cf53f4265863671e0fe364d20698083345d09 Mon Sep 17 00:00:00 2001 From: "Dr. Stephen Henson" Date: Thu, 9 Jan 2014 22:47:22 +0000 Subject: =?UTF-8?q?Fix=20bug=20in=20X509=5FV=5FFLAG=5FIGNORE=5FCRITICAL=20CR?= =?UTF-8?q?L=20handling.=0A(cherry=20picked=20from=20commit=208f4077ca69076c?= =?UTF-8?q?ebaca51b7b666db1ed49e46b9e)=0A(cherry=20picked=20from=20commit=20?= =?UTF-8?q?fe08007399230b5a797e977e2f8321923b437958)?= --- crypto/x509/x509_vfy.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/crypto/x509/x509_vfy.c b/crypto/x509/x509_vfy.c index 5195ffe..920066a 100644 --- a/crypto/x509/x509_vfy.c +++ b/crypto/x509/x509_vfy.c @@ -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) -- 1.7.9.5