Hi Eric,

> diff --git a/certs/system_keyring.c b/certs/system_keyring.c
> index 9de610bf1f4b..b647be49f6e0 100644
> --- a/certs/system_keyring.c
> +++ b/certs/system_keyring.c
> @@ -426,3 +426,32 @@ void __init set_platform_trusted_keys(struct key
> *keyring)
>       platform_trusted_keys = keyring;
>  }
>  #endif
> +
> +/**
> + * system_key_link - Link to a system key
> + * @keyring: The keyring to link into
> + * @id: The asymmetric key id to look for in the system keyring
> + */
> +int system_key_link(struct key *keyring, struct asymmetric_key_id *id)
> +{
> +     struct key *tkey;
> +
> +#ifdef CONFIG_SECONDARY_TRUSTED_KEYRING
> +     tkey = find_asymmetric_key(secondary_trusted_keys, id, NULL, NULL,
> false);
> +#else
> +     tkey = find_asymmetric_key(builtin_trusted_keys, id, NULL, NULL, false);
> +#endif
> +     if (!IS_ERR(tkey))
> +             goto found;
> +
> +     tkey = find_asymmetric_key(platform_trusted_keys, id, NULL, NULL,
> false);
> +
> +     if (!IS_ERR(tkey))
> +             goto found;
> +
> +     return -1;

Normally "goto" is for the error.  Invert the logic. 

Mimi

> +
> +found:
> +     key_link(keyring, tkey);
> +     return 0;
> +}
> 






Reply via email to