On 1/10/22 17:48, Simon Glass wrote:
Hi,

On Mon, 10 Jan 2022 at 08:00, Alex G. <mr.nuke...@gmail.com> wrote:



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.schucha...@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.

It looks like just a case of changing some function signatures in that
file. Heinrich, what do you think?

Alex' suggestion is fine. I just did not want to create a lot of changes on release day.

Best regards

Heinrich


Regards,
SImon




Alex

       ret = rsa_get_params(rsa, &exponent, &n0_inv, &modulus, &r_squared);
       if (ret)
               goto err_get_params;


Reply via email to