RE: [PATCH -next] crypto: asymmetric_keys - Fix error return code on failure

2017-02-09 Thread weiyongjun (A)
Hi David,

> > --- a/crypto/asymmetric_keys/public_key.c
> > +++ b/crypto/asymmetric_keys/public_key.c
> > @@ -184,8 +184,10 @@ static int software_key_eds_op(struct
> kernel_pkey_params *params,
> > return PTR_ERR(tfm);
> >
> > req = akcipher_request_alloc(tfm, GFP_KERNEL);
> > -   if (!req)
> > +   if (!req) {
> > +   ret = -ENOMEM;
> 
> Ummm...  What should I apply your patch to?

This one introduced by patch " KEYS: Implement encrypt, decrypt and sign for 
software asymmetric key".

> 
> > goto error_free_tfm;
> > +   }
> >
> > if (pkey->key_is_private)
> > ret = crypto_akcipher_set_priv_key(tfm,
> > @@ -268,8 +270,10 @@ int public_key_verify_signature(const struct
> public_key *pkey,
> > return PTR_ERR(tfm);
> >
> > req = akcipher_request_alloc(tfm, GFP_KERNEL);
> > -   if (!req)
> > +   if (!req) {
> > +   ret = -ENOMEM;
> > goto error_free_tfm;
> 
> This shouldn't be necessary.  ret should already be -ENOMEM from
> initialisation of the variable at the top of the function.

Introduced by patch " KEYS: Provide software public key query function", ret 
have
been overwritten to 0 after ret = software_key_determine_akcipher(...).

Regards,
Wei Yongjun





Re: [PATCH -next] crypto: asymmetric_keys - Fix error return code on failure

2017-02-09 Thread David Howells
Wei Yongjun  wrote:

> --- a/crypto/asymmetric_keys/public_key.c
> +++ b/crypto/asymmetric_keys/public_key.c
> @@ -184,8 +184,10 @@ static int software_key_eds_op(struct kernel_pkey_params 
> *params,
>   return PTR_ERR(tfm);
>  
>   req = akcipher_request_alloc(tfm, GFP_KERNEL);
> - if (!req)
> + if (!req) {
> + ret = -ENOMEM;

Ummm...  What should I apply your patch to?

>   goto error_free_tfm;
> + }
>  
>   if (pkey->key_is_private)
>   ret = crypto_akcipher_set_priv_key(tfm,
> @@ -268,8 +270,10 @@ int public_key_verify_signature(const struct public_key 
> *pkey,
>   return PTR_ERR(tfm);
>  
>   req = akcipher_request_alloc(tfm, GFP_KERNEL);
> - if (!req)
> + if (!req) {
> + ret = -ENOMEM;
>   goto error_free_tfm;

This shouldn't be necessary.  ret should already be -ENOMEM from
initialisation of the variable at the top of the function.

David