[PATCH] lib/rsa: avoid -Wdiscarded-qualifiers
Alex G.
mr.nuke.me at gmail.com
Mon Jan 10 16:00:29 CET 2022
On 1/9/22 8:39 AM, Heinrich Schuchardt wrote:
> The return type of EVP_PKEY_get0_RSA() is const struct rsa_st *.
> Our code drops the const qualifier leading to
>
> In file included from tools/lib/rsa/rsa-sign.c:1:
> ./tools/../lib/rsa/rsa-sign.c: In function ‘rsa_add_verify_data’:
> ./tools/../lib/rsa/rsa-sign.c:631:13: warning:
> assignment discards ‘const’ qualifier from pointer target type
> [-Wdiscarded-qualifiers]
> 631 | rsa = EVP_PKEY_get0_RSA(pkey);
> | ^
>
> Add a type conversion.
>
> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
> ---
> lib/rsa/rsa-sign.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lib/rsa/rsa-sign.c b/lib/rsa/rsa-sign.c
> index 44f21416ce..3b6e5f0f86 100644
> --- a/lib/rsa/rsa-sign.c
> +++ b/lib/rsa/rsa-sign.c
> @@ -628,7 +628,7 @@ int rsa_add_verify_data(struct image_sign_info *info, void *keydest)
> if (ret)
> goto err_get_pub_key;
>
> - rsa = EVP_PKEY_get0_RSA(pkey);
> + rsa = (RSA *)EVP_PKEY_get0_RSA(pkey);
I think it's the wrong path to discard const qualifiers, whether
unwillingly or by type punning. I suggest making 'rsa' a "const RSA *"
and fixing the downstream users to do the same.
Alex
> ret = rsa_get_params(rsa, &exponent, &n0_inv, &modulus, &r_squared);
> if (ret)
> goto err_get_params;
>
More information about the U-Boot
mailing list