diff mbox series

usb: typec: ucsi: Fix NULL pointer dereference

Message ID 20230906084842.1922052-1-heikki.krogerus@linux.intel.com
State New
Headers show
Series usb: typec: ucsi: Fix NULL pointer dereference | expand

Commit Message

Heikki Krogerus Sept. 6, 2023, 8:48 a.m. UTC
Making sure the UCSI debugfs entry actually exists before
attempting to remove it.

Fixes: df0383ffad64 ("usb: typec: ucsi: Add debugfs for ucsi commands")
Reported-by: Dave Hansen <dave.hansen@intel.com>
Closes: https://lore.kernel.org/linux-usb/700df3c4-2f6c-85f9-6c61-065bc5b2db3a@intel.com/
Suggested-by: Dave Hansen <dave.hansen@intel.com>
Suggested-by: Mario Limonciello <mario.limonciello@amd.com>
Cc: Saranya Gopal <saranya.gopal@intel.com>
Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
---
 drivers/usb/typec/ucsi/debugfs.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Thorsten Leemhuis Sept. 11, 2023, 9:46 a.m. UTC | #1
On 06.09.23 14:05, Mario Limonciello wrote:
> On 9/6/2023 03:57, Greg Kroah-Hartman wrote:
>> On Wed, Sep 06, 2023 at 11:48:42AM +0300, Heikki Krogerus wrote:
>>> Making sure the UCSI debugfs entry actually exists before
>>> attempting to remove it.
>>>
>>> Fixes: df0383ffad64 ("usb: typec: ucsi: Add debugfs for ucsi commands")
>>> Reported-by: Dave Hansen <dave.hansen@intel.com>
>>> Closes:
>>> https://lore.kernel.org/linux-usb/700df3c4-2f6c-85f9-6c61-065bc5b2db3a@intel.com/
>>> Suggested-by: Dave Hansen <dave.hansen@intel.com>
>>> Suggested-by: Mario Limonciello <mario.limonciello@amd.com>
>>> Cc: Saranya Gopal <saranya.gopal@intel.com>
>>> Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
> 
> I could also reproduce it with 7733171926cc336ddf0c8f847eefaff569dbff86
> on two different laptops.
> 
>>> ---
>>>   drivers/usb/typec/ucsi/debugfs.c | 3 +++
>>>   1 file changed, 3 insertions(+)
>>>
>>> diff --git a/drivers/usb/typec/ucsi/debugfs.c
>>> b/drivers/usb/typec/ucsi/debugfs.c
>>> index 0c7bf88d4a7f..f67733cecfdf 100644
>>> --- a/drivers/usb/typec/ucsi/debugfs.c
>>> +++ b/drivers/usb/typec/ucsi/debugfs.c
>>> @@ -84,6 +84,9 @@ void ucsi_debugfs_register(struct ucsi *ucsi)
>>>     void ucsi_debugfs_unregister(struct ucsi *ucsi)
>>>   {
>>> +    if (IS_ERR_OR_NULL(ucsi) || !ucsi->debugfs)
>>> +        return;
>>> +
>>>       debugfs_remove_recursive(ucsi->debugfs->dentry);
>>
>> Why are you saving the dentry at all?  Why not just have debugfs look it
>> up when you want to remove it based on the filename?
>>
>> Anyway, not a big deal here, just a comment.  I'll queue this up after
>> -rc1 is out.
> 
> It might be worth sending before rc1 if it ends up being widespread.

FWIW, as someone that afaics just ran into the regression fixed by this
patch with -rc1, I would have liked that patch to be in -rc1 as well...

Ciao, Thorsten
diff mbox series

Patch

diff --git a/drivers/usb/typec/ucsi/debugfs.c b/drivers/usb/typec/ucsi/debugfs.c
index 0c7bf88d4a7f..f67733cecfdf 100644
--- a/drivers/usb/typec/ucsi/debugfs.c
+++ b/drivers/usb/typec/ucsi/debugfs.c
@@ -84,6 +84,9 @@  void ucsi_debugfs_register(struct ucsi *ucsi)
 
 void ucsi_debugfs_unregister(struct ucsi *ucsi)
 {
+	if (IS_ERR_OR_NULL(ucsi) || !ucsi->debugfs)
+		return;
+
 	debugfs_remove_recursive(ucsi->debugfs->dentry);
 	kfree(ucsi->debugfs);
 }