Re: [PATCH] KEYS: asymmetric: Fix error codes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue Jul 11, 2023 at 2:10 AM EEST, Jarkko Sakkinen wrote:
> On Mon Jul 3, 2023 at 5:18 PM EEST, Dan Carpenter wrote:
> > These error paths should return the appropriate error codes instead of
> > returning success.
> >
> > Fixes: 63ba4d67594a ("KEYS: asymmetric: Use new crypto interface without scatterlists")
> > Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
> > ---
> >  crypto/asymmetric_keys/public_key.c | 20 +++++++++++++++-----
> >  1 file changed, 15 insertions(+), 5 deletions(-)
> >
> > diff --git a/crypto/asymmetric_keys/public_key.c b/crypto/asymmetric_keys/public_key.c
> > index e787598cb3f7..773e159dbbcb 100644
> > --- a/crypto/asymmetric_keys/public_key.c
> > +++ b/crypto/asymmetric_keys/public_key.c
> > @@ -185,8 +185,10 @@ static int software_key_query(const struct kernel_pkey_params *params,
> >  
> >  	if (issig) {
> >  		sig = crypto_alloc_sig(alg_name, 0, 0);
> > -		if (IS_ERR(sig))
> > +		if (IS_ERR(sig)) {
> > +			ret = PTR_ERR(sig);
> >  			goto error_free_key;
> > +		}
> >  
> >  		if (pkey->key_is_private)
> >  			ret = crypto_sig_set_privkey(sig, key, pkey->keylen);
> > @@ -208,8 +210,10 @@ static int software_key_query(const struct kernel_pkey_params *params,
> >  		}
> >  	} else {
> >  		tfm = crypto_alloc_akcipher(alg_name, 0, 0);
> > -		if (IS_ERR(tfm))
> > +		if (IS_ERR(tfm)) {
> > +			ret = PTR_ERR(tfm);
> >  			goto error_free_key;
> > +		}
> >  
> >  		if (pkey->key_is_private)
> >  			ret = crypto_akcipher_set_priv_key(tfm, key, pkey->keylen);
> > @@ -300,8 +304,10 @@ static int software_key_eds_op(struct kernel_pkey_params *params,
> >  
> >  	if (issig) {
> >  		sig = crypto_alloc_sig(alg_name, 0, 0);
> > -		if (IS_ERR(sig))
> > +		if (IS_ERR(sig)) {
> > +			ret = PTR_ERR(sig);
> >  			goto error_free_key;
> > +		}
> >  
> >  		if (pkey->key_is_private)
> >  			ret = crypto_sig_set_privkey(sig, key, pkey->keylen);
> > @@ -313,8 +319,10 @@ static int software_key_eds_op(struct kernel_pkey_params *params,
> >  		ksz = crypto_sig_maxsize(sig);
> >  	} else {
> >  		tfm = crypto_alloc_akcipher(alg_name, 0, 0);
> > -		if (IS_ERR(tfm))
> > +		if (IS_ERR(tfm)) {
> > +			ret = PTR_ERR(tfm);
> >  			goto error_free_key;
> > +		}
> >  
> >  		if (pkey->key_is_private)
> >  			ret = crypto_akcipher_set_priv_key(tfm, key, pkey->keylen);
> > @@ -411,8 +419,10 @@ int public_key_verify_signature(const struct public_key *pkey,
> >  
> >  	key = kmalloc(pkey->keylen + sizeof(u32) * 2 + pkey->paramlen,
> >  		      GFP_KERNEL);
> > -	if (!key)
> > +	if (!key) {
> > +		ret = -ENOMEM;
> >  		goto error_free_tfm;
> > +	}
> >  
> >  	memcpy(key, pkey->key, pkey->keylen);
> >  	ptr = key + pkey->keylen;
> > -- 
> > 2.39.2
>
> I'll pick this as I'm late with 6.5 PR.
>
> Reviewed-by: Jarkko Sakkinen <jarkko@xxxxxxxxxx>

Causes merge conflicts with my tree:

https://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd.git/

BR, Jarkko




[Index of Archives]     [Kernel Development]     [Kernel Announce]     [Kernel Newbies]     [Linux Networking Development]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Device Mapper]

  Powered by Linux