|
@@ -566,6 +566,8 @@ static int keyring_search_iterator(const void *object, void *iterator_data)
|
|
|
|
|
|
/* skip invalidated, revoked and expired keys */
|
|
|
if (ctx->flags & KEYRING_SEARCH_DO_STATE_CHECK) {
|
|
|
+ time_t expiry = READ_ONCE(key->expiry);
|
|
|
+
|
|
|
if (kflags & ((1 << KEY_FLAG_INVALIDATED) |
|
|
|
(1 << KEY_FLAG_REVOKED))) {
|
|
|
ctx->result = ERR_PTR(-EKEYREVOKED);
|
|
@@ -573,7 +575,7 @@ static int keyring_search_iterator(const void *object, void *iterator_data)
|
|
|
goto skipped;
|
|
|
}
|
|
|
|
|
|
- if (key->expiry && ctx->now.tv_sec >= key->expiry) {
|
|
|
+ if (expiry && ctx->now.tv_sec >= expiry) {
|
|
|
if (!(ctx->flags & KEYRING_SEARCH_SKIP_EXPIRED))
|
|
|
ctx->result = ERR_PTR(-EKEYEXPIRED);
|
|
|
kleave(" = %d [expire]", ctx->skipped_ret);
|