Re: [PATCH] platform/x86: think-lmi: Use snprintf() in new_password_store()
From: Mark Pearson
Date: Tue Sep 22 2026 - 13:40:08 EST
On Sun, Sep 20, 2026, at 6:30 AM, Thorsten Blum wrote:
> While the current code works correctly, replace unbounded sprintf()
> calls with the safer snprintf() in new_password_store() to follow secure
> coding best practices.
>
> Signed-off-by: Thorsten Blum <blum@xxxxxxxxxx>
> ---
> drivers/platform/x86/lenovo/think-lmi.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/platform/x86/lenovo/think-lmi.c
> b/drivers/platform/x86/lenovo/think-lmi.c
> index a0e3fa766e37..3ddc1f5cec19 100644
> --- a/drivers/platform/x86/lenovo/think-lmi.c
> +++ b/drivers/platform/x86/lenovo/think-lmi.c
> @@ -487,16 +487,16 @@ static ssize_t new_password_store(struct kobject
> *kobj,
> /* Special handling required for HDD and NVMe passwords */
> if (setting == tlmi_priv.pwd_hdd) {
> if (setting->level == TLMI_LEVEL_USER)
> - sprintf(pwd_type, "uhdp%d", setting->index);
> + snprintf(pwd_type, sizeof(pwd_type), "uhdp%d", setting->index);
> else
> - sprintf(pwd_type, "mhdp%d", setting->index);
> + snprintf(pwd_type, sizeof(pwd_type), "mhdp%d", setting->index);
> } else if (setting == tlmi_priv.pwd_nvme) {
> if (setting->level == TLMI_LEVEL_USER)
> - sprintf(pwd_type, "udrp%d", setting->index);
> + snprintf(pwd_type, sizeof(pwd_type), "udrp%d", setting->index);
> else
> - sprintf(pwd_type, "adrp%d", setting->index);
> + snprintf(pwd_type, sizeof(pwd_type), "adrp%d", setting->index);
> } else {
> - sprintf(pwd_type, "%s", setting->pwd_type);
> + snprintf(pwd_type, sizeof(pwd_type), "%s", setting->pwd_type);
> }
>
> ret = tlmi_opcode_setting("WmiOpcodePasswordType", pwd_type);
Reviewed-by: Mark Pearson <mpearson-lenovo@xxxxxxxxx>
Mark