|
@@ -628,6 +628,10 @@ static bool search_nested_keyrings(struct key *keyring,
|
|
|
ctx->index_key.type->name,
|
|
|
ctx->index_key.description);
|
|
|
|
|
|
+#define STATE_CHECKS (KEYRING_SEARCH_NO_STATE_CHECK | KEYRING_SEARCH_DO_STATE_CHECK)
|
|
|
+ BUG_ON((ctx->flags & STATE_CHECKS) == 0 ||
|
|
|
+ (ctx->flags & STATE_CHECKS) == STATE_CHECKS);
|
|
|
+
|
|
|
if (ctx->index_key.description)
|
|
|
ctx->index_key.desc_len = strlen(ctx->index_key.description);
|
|
|
|
|
@@ -637,7 +641,6 @@ static bool search_nested_keyrings(struct key *keyring,
|
|
|
if (ctx->match_data.lookup_type == KEYRING_SEARCH_LOOKUP_ITERATE ||
|
|
|
keyring_compare_object(keyring, &ctx->index_key)) {
|
|
|
ctx->skipped_ret = 2;
|
|
|
- ctx->flags |= KEYRING_SEARCH_DO_STATE_CHECK;
|
|
|
switch (ctx->iterator(keyring_key_to_ptr(keyring), ctx)) {
|
|
|
case 1:
|
|
|
goto found;
|
|
@@ -649,8 +652,6 @@ static bool search_nested_keyrings(struct key *keyring,
|
|
|
}
|
|
|
|
|
|
ctx->skipped_ret = 0;
|
|
|
- if (ctx->flags & KEYRING_SEARCH_NO_STATE_CHECK)
|
|
|
- ctx->flags &= ~KEYRING_SEARCH_DO_STATE_CHECK;
|
|
|
|
|
|
/* Start processing a new keyring */
|
|
|
descend_to_keyring:
|