2023-07-17 10:26:58

by Wang Ming

[permalink] [raw]
Subject: [PATCH v1] platform: x86: Use kfree_sensitive instead of kfree

key might contain private part of the key, so better use
kfree_sensitive to free it.

Signed-off-by: Wang Ming <[email protected]>
---
drivers/platform/x86/think-lmi.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/platform/x86/think-lmi.c b/drivers/platform/x86/think-lmi.c
index 52d1ce8dfe44..79346881cadb 100644
--- a/drivers/platform/x86/think-lmi.c
+++ b/drivers/platform/x86/think-lmi.c
@@ -719,12 +719,12 @@ static ssize_t cert_to_password_store(struct kobject *kobj,
/* Format: 'Password,Signature' */
auth_str = kasprintf(GFP_KERNEL, "%s,%s", passwd, setting->signature);
if (!auth_str) {
- kfree(passwd);
+ kfree_sensitive(passwd);
return -ENOMEM;
}
ret = tlmi_simple_call(LENOVO_CERT_TO_PASSWORD_GUID, auth_str);
kfree(auth_str);
- kfree(passwd);
+ kfree_sensitive(passwd);

return ret ?: count;
}
--
2.25.1



2023-07-17 14:53:23

by Mark Pearson

[permalink] [raw]
Subject: Re: [External] [PATCH v1] platform: x86: Use kfree_sensitive instead of kfree

On 7/17/23 06:11, Wang Ming wrote:
> key might contain private part of the key, so better use
> kfree_sensitive to free it.
>
> Signed-off-by: Wang Ming <[email protected]>
> ---
> drivers/platform/x86/think-lmi.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/platform/x86/think-lmi.c b/drivers/platform/x86/think-lmi.c
> index 52d1ce8dfe44..79346881cadb 100644
> --- a/drivers/platform/x86/think-lmi.c
> +++ b/drivers/platform/x86/think-lmi.c
> @@ -719,12 +719,12 @@ static ssize_t cert_to_password_store(struct kobject *kobj,
> /* Format: 'Password,Signature' */
> auth_str = kasprintf(GFP_KERNEL, "%s,%s", passwd, setting->signature);
> if (!auth_str) {
> - kfree(passwd);
> + kfree_sensitive(passwd);
> return -ENOMEM;
> }
> ret = tlmi_simple_call(LENOVO_CERT_TO_PASSWORD_GUID, auth_str);
> kfree(auth_str);
> - kfree(passwd);
> + kfree_sensitive(passwd);
>
> return ret ?: count;
> }

I wasn't aware of kfree_sensitive - looks good to me!

Thank you

Mark


2023-07-25 14:24:55

by Hans de Goede

[permalink] [raw]
Subject: Re: [PATCH v1] platform: x86: Use kfree_sensitive instead of kfree

Hi,

On 7/17/23 12:11, Wang Ming wrote:
> key might contain private part of the key, so better use
> kfree_sensitive to free it.
>
> Signed-off-by: Wang Ming <[email protected]>

Thank you for your patch, I've applied this patch to my fixes
branch:
https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=fixes

Note it will show up in my fixes branch once I've pushed my
local branch there, which might take a while.

I will include this patch in my next fixes pull-req to Linus
for the current kernel development cycle.

Regards,

Hans



> ---
> drivers/platform/x86/think-lmi.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/platform/x86/think-lmi.c b/drivers/platform/x86/think-lmi.c
> index 52d1ce8dfe44..79346881cadb 100644
> --- a/drivers/platform/x86/think-lmi.c
> +++ b/drivers/platform/x86/think-lmi.c
> @@ -719,12 +719,12 @@ static ssize_t cert_to_password_store(struct kobject *kobj,
> /* Format: 'Password,Signature' */
> auth_str = kasprintf(GFP_KERNEL, "%s,%s", passwd, setting->signature);
> if (!auth_str) {
> - kfree(passwd);
> + kfree_sensitive(passwd);
> return -ENOMEM;
> }
> ret = tlmi_simple_call(LENOVO_CERT_TO_PASSWORD_GUID, auth_str);
> kfree(auth_str);
> - kfree(passwd);
> + kfree_sensitive(passwd);
>
> return ret ?: count;
> }