diff options
author | Andreas Steffen <andreas.steffen@strongswan.org> | 2016-10-30 16:37:24 +0100 |
---|---|---|
committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2016-10-30 16:37:24 +0100 |
commit | 880c3124586c42ee2a359322a879109d41b657e6 (patch) | |
tree | ce2be0ca90ef33c2a21e07e26b05f1a0ebae69be /src/libstrongswan | |
parent | 2271ebb3258f2759975ef30f16bd7b9b7b2a4414 (diff) | |
download | strongswan-880c3124586c42ee2a359322a879109d41b657e6.tar.bz2 strongswan-880c3124586c42ee2a359322a879109d41b657e6.tar.xz |
Fixed in-place update of cached base and delta CRLs
Diffstat (limited to 'src/libstrongswan')
-rw-r--r-- | src/libstrongswan/credentials/sets/cert_cache.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/libstrongswan/credentials/sets/cert_cache.c b/src/libstrongswan/credentials/sets/cert_cache.c index 9770c9671..24fdb194b 100644 --- a/src/libstrongswan/credentials/sets/cert_cache.c +++ b/src/libstrongswan/credentials/sets/cert_cache.c @@ -1,6 +1,7 @@ /* * Copyright (C) 2008 Martin Willi - * Hochschule fuer Technik Rapperswil + * Copyright (C) 2016 Andreas Steffen + * HSR Hochschule fuer Technik Rapperswil * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -92,12 +93,10 @@ static void cache(private_cert_cache_t *this, /* cache a CRL by replacing a previous CRL cache entry if present */ if (subject->get_type(subject) == CERT_X509_CRL) { - bool is_delta_crl; crl_t *crl, *cached_crl; /* cache a delta CRL ? */ crl = (crl_t*)subject; - is_delta_crl = crl->is_delta_crl(crl, NULL); for (i = 0; i < CACHE_SIZE; i++) { @@ -113,7 +112,8 @@ static void cache(private_cert_cache_t *this, { cached_crl = (crl_t*)rel->subject; - if (cached_crl->is_delta_crl(crl, NULL) == is_delta_crl && + if (cached_crl->is_delta_crl(cached_crl, NULL) == + crl->is_delta_crl(crl, NULL) && crl_is_newer(crl, cached_crl)) { rel->subject->destroy(rel->subject); |