2017-08-09 11:30:44

by Pan Bian

[permalink] [raw]
Subject: [V2] kexec_file: use crypto_free_shash to free memory

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 <[email protected]>
---
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



2017-08-10 02:28:41

by Baoquan He

[permalink] [raw]
Subject: Re: [V2] kexec_file: use crypto_free_shash to free memory

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 <[email protected]>

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

Acked-by: Baoquan He <[email protected]>

> ---
> 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
> [email protected]
> http://lists.infradead.org/mailman/listinfo/kexec