diff mbox series

platform/x86: dell-wmi-sysman: Change user experience when Admin/System Password is modified

Message ID 20210628084906.4233-1-prasanth.ksr@dell.com (mailing list archive)
State Accepted, archived
Headers show
Series platform/x86: dell-wmi-sysman: Change user experience when Admin/System Password is modified | expand

Commit Message

Prasanth KSR June 28, 2021, 8:49 a.m. UTC
Whenever user has changed an Admin/System Password using the sysfs,
then we are automatically copying the new password to existing
password field.

Co-developed-by: Divya Bharathi <divya.bharathi@dell.com>
Signed-off-by: Divya Bharathi <divya.bharathi@dell.com>
Signed-off-by: Prasanth KSR <prasanth.ksr@dell.com>
---
 .../x86/dell/dell-wmi-sysman/passwordattr-interface.c         | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Hans de Goede June 28, 2021, 9:01 a.m. UTC | #1
Hi,

On 6/28/21 10:49 AM, Prasanth KSR wrote:
> Whenever user has changed an Admin/System Password using the sysfs,
> then we are automatically copying the new password to existing
> password field.
> 
> Co-developed-by: Divya Bharathi <divya.bharathi@dell.com>
> Signed-off-by: Divya Bharathi <divya.bharathi@dell.com>
> Signed-off-by: Prasanth KSR <prasanth.ksr@dell.com>

Thank you.

I assume this was tested?  The reason I'm asking because in the
Lenovo Think* case it turned out that the modified password only
becomes active after a reboot, so the right thing to do there was
to just keep current_password as is.

Regards,

Hans



> ---
>  .../x86/dell/dell-wmi-sysman/passwordattr-interface.c         | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/platform/x86/dell/dell-wmi-sysman/passwordattr-interface.c b/drivers/platform/x86/dell/dell-wmi-sysman/passwordattr-interface.c
> index 339a082d6c18..86ec962aace9 100644
> --- a/drivers/platform/x86/dell/dell-wmi-sysman/passwordattr-interface.c
> +++ b/drivers/platform/x86/dell/dell-wmi-sysman/passwordattr-interface.c
> @@ -95,9 +95,9 @@ int set_new_password(const char *password_type, const char *new)
>  
>  	print_hex_dump_bytes("set new password data: ", DUMP_PREFIX_NONE, buffer, buffer_size);
>  	ret = call_password_interface(wmi_priv.password_attr_wdev, buffer, buffer_size);
> -	/* clear current_password here and use user input from wmi_priv.current_password */
> +	/* on success copy the new password to current password */
>  	if (!ret)
> -		memset(current_password, 0, MAX_BUFF);
> +		strscpy(current_password, new, MAX_BUFF);
>  	/* explain to user the detailed failure reason */
>  	else if (ret == -EOPNOTSUPP)
>  		dev_err(&wmi_priv.password_attr_wdev->dev, "admin password must be configured\n");
>
Ksr, Prasanth June 28, 2021, 9:05 a.m. UTC | #2
Hi,


> -----Original Message-----
> From: Hans de Goede <hdegoede@redhat.com>
> Sent: Monday, June 28, 2021 2:32 PM
> To: Prasanth KSR; dvhart@infradead.org
> Cc: LKML; platform-driver-x86@vger.kernel.org; Ksr, Prasanth; Bharathi, Divya
> Subject: Re: [PATCH] platform/x86: dell-wmi-sysman: Change user experience
> when Admin/System Password is modified
> 
> 
> [EXTERNAL EMAIL]
> 
> Hi,
> 
> On 6/28/21 10:49 AM, Prasanth KSR wrote:
> > Whenever user has changed an Admin/System Password using the sysfs,
> > then we are automatically copying the new password to existing
> > password field.
> >
> > Co-developed-by: Divya Bharathi <divya.bharathi@dell.com>
> > Signed-off-by: Divya Bharathi <divya.bharathi@dell.com>
> > Signed-off-by: Prasanth KSR <prasanth.ksr@dell.com>
> 
> Thank you.
> 
> I assume this was tested?  The reason I'm asking because in the Lenovo Think*
> case it turned out that the modified password only becomes active after a reboot,
> so the right thing to do there was to just keep current_password as is.
> 

Yes it is tested and Dell BIOS Admin/System password do not require a reboot to be active.

> Regards,
> 
> Hans
> 
> 
> 
> > ---
> >  .../x86/dell/dell-wmi-sysman/passwordattr-interface.c         | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git
> > a/drivers/platform/x86/dell/dell-wmi-sysman/passwordattr-interface.c
> > b/drivers/platform/x86/dell/dell-wmi-sysman/passwordattr-interface.c
> > index 339a082d6c18..86ec962aace9 100644
> > ---
> > a/drivers/platform/x86/dell/dell-wmi-sysman/passwordattr-interface.c
> > +++ b/drivers/platform/x86/dell/dell-wmi-sysman/passwordattr-interface
> > +++ .c
> > @@ -95,9 +95,9 @@ int set_new_password(const char *password_type,
> > const char *new)
> >
> >  	print_hex_dump_bytes("set new password data: ", DUMP_PREFIX_NONE,
> buffer, buffer_size);
> >  	ret = call_password_interface(wmi_priv.password_attr_wdev, buffer,
> buffer_size);
> > -	/* clear current_password here and use user input from
> wmi_priv.current_password */
> > +	/* on success copy the new password to current password */
> >  	if (!ret)
> > -		memset(current_password, 0, MAX_BUFF);
> > +		strscpy(current_password, new, MAX_BUFF);
> >  	/* explain to user the detailed failure reason */
> >  	else if (ret == -EOPNOTSUPP)
> >  		dev_err(&wmi_priv.password_attr_wdev->dev, "admin password
> must be
> > configured\n");
> >
Hans de Goede June 28, 2021, 9:15 a.m. UTC | #3
Hi,

On 6/28/21 10:49 AM, Prasanth KSR wrote:
> Whenever user has changed an Admin/System Password using the sysfs,
> then we are automatically copying the new password to existing
> password field.
> 
> Co-developed-by: Divya Bharathi <divya.bharathi@dell.com>
> Signed-off-by: Divya Bharathi <divya.bharathi@dell.com>
> Signed-off-by: Prasanth KSR <prasanth.ksr@dell.com>

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

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

Once I've run some tests on this branch the patches there will be
added to the platform-drivers-x86/for-next branch and eventually
will be included in the pdx86 pull-request to Linus for the next
merge-window.

Regards,

Hans


> ---
>  .../x86/dell/dell-wmi-sysman/passwordattr-interface.c         | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/platform/x86/dell/dell-wmi-sysman/passwordattr-interface.c b/drivers/platform/x86/dell/dell-wmi-sysman/passwordattr-interface.c
> index 339a082d6c18..86ec962aace9 100644
> --- a/drivers/platform/x86/dell/dell-wmi-sysman/passwordattr-interface.c
> +++ b/drivers/platform/x86/dell/dell-wmi-sysman/passwordattr-interface.c
> @@ -95,9 +95,9 @@ int set_new_password(const char *password_type, const char *new)
>  
>  	print_hex_dump_bytes("set new password data: ", DUMP_PREFIX_NONE, buffer, buffer_size);
>  	ret = call_password_interface(wmi_priv.password_attr_wdev, buffer, buffer_size);
> -	/* clear current_password here and use user input from wmi_priv.current_password */
> +	/* on success copy the new password to current password */
>  	if (!ret)
> -		memset(current_password, 0, MAX_BUFF);
> +		strscpy(current_password, new, MAX_BUFF);
>  	/* explain to user the detailed failure reason */
>  	else if (ret == -EOPNOTSUPP)
>  		dev_err(&wmi_priv.password_attr_wdev->dev, "admin password must be configured\n");
>
diff mbox series

Patch

diff --git a/drivers/platform/x86/dell/dell-wmi-sysman/passwordattr-interface.c b/drivers/platform/x86/dell/dell-wmi-sysman/passwordattr-interface.c
index 339a082d6c18..86ec962aace9 100644
--- a/drivers/platform/x86/dell/dell-wmi-sysman/passwordattr-interface.c
+++ b/drivers/platform/x86/dell/dell-wmi-sysman/passwordattr-interface.c
@@ -95,9 +95,9 @@  int set_new_password(const char *password_type, const char *new)
 
 	print_hex_dump_bytes("set new password data: ", DUMP_PREFIX_NONE, buffer, buffer_size);
 	ret = call_password_interface(wmi_priv.password_attr_wdev, buffer, buffer_size);
-	/* clear current_password here and use user input from wmi_priv.current_password */
+	/* on success copy the new password to current password */
 	if (!ret)
-		memset(current_password, 0, MAX_BUFF);
+		strscpy(current_password, new, MAX_BUFF);
 	/* explain to user the detailed failure reason */
 	else if (ret == -EOPNOTSUPP)
 		dev_err(&wmi_priv.password_attr_wdev->dev, "admin password must be configured\n");