Re: [V2] kexec_file: use crypto_free_shash to free memory

2017-08-09 Thread Baoquan He
On 08/09/17 at 07:30pm, Pan Bian wrote:
> In function kexec_calculate_store_digests(), kfree() is used to free
> memory allocated by crypto_alloc_shash(). It is better to use function
> crypto_free_shash(), which frees up tfm and any resources associated with
> it. And then, the refcount of the algorithm used in crypto_alloc_shash()
> is also dropped.
> 
> Signed-off-by: Pan Bian 

Makes sense to call the crypto alloc/free api in pairs.

Acked-by: Baoquan He 

> ---
>  kernel/kexec_file.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/kernel/kexec_file.c b/kernel/kexec_file.c
> index 9f48f44..94eeb38 100644
> --- a/kernel/kexec_file.c
> +++ b/kernel/kexec_file.c
> @@ -627,7 +627,7 @@ static int kexec_calculate_store_digests(struct kimage 
> *image)
>  out_free_desc:
>   kfree(desc);
>  out_free_tfm:
> - kfree(tfm);
> + crypto_free_shash(tfm);
>  out:
>   return ret;
>  }
> -- 
> 1.9.1
> 
> 
> 
> ___
> kexec mailing list
> ke...@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec


[V2] kexec_file: use crypto_free_shash to free memory

2017-08-09 Thread Pan Bian
In function kexec_calculate_store_digests(), kfree() is used to free
memory allocated by crypto_alloc_shash(). It is better to use function
crypto_free_shash(), which frees up tfm and any resources associated with
it. And then, the refcount of the algorithm used in crypto_alloc_shash()
is also dropped.

Signed-off-by: Pan Bian 
---
 kernel/kexec_file.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/kexec_file.c b/kernel/kexec_file.c
index 9f48f44..94eeb38 100644
--- a/kernel/kexec_file.c
+++ b/kernel/kexec_file.c
@@ -627,7 +627,7 @@ static int kexec_calculate_store_digests(struct kimage 
*image)
 out_free_desc:
kfree(desc);
 out_free_tfm:
-   kfree(tfm);
+   crypto_free_shash(tfm);
 out:
return ret;
 }
-- 
1.9.1




Re: kexec_file: use crypto_free_shash to free memory

2017-08-08 Thread Eric W. Biederman
Pan Bian  writes:

> In function kexec_calculate_store_digests(), kfree() is used to free
> memory allocated by crypto_alloc_shash(). It is better to use function
> crypto_free_shash(), which also zeroizes the memory to be freed.

Why is it important to zero memory?  There is nothing sensitive being
stored or hashed.  The hash is used for integrity checking purposes.

If the argument is that kfree is simply the wrong frunction for freeing
something allocating with crypto_alloc_shash() I can believe that.  In
which case that sounds like something that needs to be fixed.  But I am
concerned that wasn't your argument and you are talking about something
that appears to be completely irrelevant.

Eric

> Signed-off-by: Pan Bian 
> ---
>  kernel/kexec_file.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/kexec_file.c b/kernel/kexec_file.c
> index 9f48f44..94eeb38 100644
> --- a/kernel/kexec_file.c
> +++ b/kernel/kexec_file.c
> @@ -627,7 +627,7 @@ static int kexec_calculate_store_digests(struct kimage 
> *image)
>  out_free_desc:
>   kfree(desc);
>  out_free_tfm:
> - kfree(tfm);
> + crypto_free_shash(tfm);
>  out:
>   return ret;
>  }


kexec_file: use crypto_free_shash to free memory

2017-08-08 Thread Pan Bian
In function kexec_calculate_store_digests(), kfree() is used to free
memory allocated by crypto_alloc_shash(). It is better to use function
crypto_free_shash(), which also zeroizes the memory to be freed.

Signed-off-by: Pan Bian 
---
 kernel/kexec_file.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/kexec_file.c b/kernel/kexec_file.c
index 9f48f44..94eeb38 100644
--- a/kernel/kexec_file.c
+++ b/kernel/kexec_file.c
@@ -627,7 +627,7 @@ static int kexec_calculate_store_digests(struct kimage 
*image)
 out_free_desc:
kfree(desc);
 out_free_tfm:
-   kfree(tfm);
+   crypto_free_shash(tfm);
 out:
return ret;
 }
-- 
1.9.1