diff options
author | Dr. Stephen Henson <steve@openssl.org> | 2014-01-09 22:47:22 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 2014-01-09 22:54:03 +0000 |
commit | fe08007399230b5a797e977e2f8321923b437958 (patch) | |
tree | 5739f615a8a21aefbd35432bca4ef42a2b0be30d | |
parent | e3ebdcff129bc6dd436a033618d71504b2f68b5c (diff) | |
download | openssl-new-fe08007399230b5a797e977e2f8321923b437958.tar.gz |
Fix bug in X509_V_FLAG_IGNORE_CRITICAL CRL handling.
(cherry picked from commit 8f4077ca69076cebaca51b7b666db1ed49e46b9e)
-rw-r--r-- | crypto/x509/x509_vfy.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/crypto/x509/x509_vfy.c b/crypto/x509/x509_vfy.c index 5195ffef26..920066aeba 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) |