]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
USB: gadget: pxa25x_udc: fix memory leak with using debugfs_lookup()
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 2 Feb 2023 15:32:33 +0000 (16:32 +0100)
committerAndrea Righi <andrea.righi@canonical.com>
Tue, 14 Mar 2023 15:48:00 +0000 (16:48 +0100)
BugLink: https://bugs.launchpad.net/bugs/2011430
[ Upstream commit 7a038a681b7df78362d9fc7013e5395a694a9d3a ]

When calling debugfs_lookup() the result must have dput() called on it,
otherwise the memory will leak over time.  To make things simpler, just
call debugfs_lookup_and_remove() instead which handles all of the logic
at once.

Cc: Daniel Mack <daniel@zonque.org>
Cc: Haojian Zhuang <haojian.zhuang@gmail.com>
Cc: Robert Jarzmik <robert.jarzmik@free.fr>
Link: https://lore.kernel.org/r/20230202153235.2412790-11-gregkh@linuxfoundation.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/usb/gadget/udc/pxa25x_udc.c

index c593fc383481e7436759cef5b4b6b5d8511329bd..9e01ddf2b417019a51a9c7d7b9a1931860d990d1 100644 (file)
@@ -1340,7 +1340,7 @@ DEFINE_SHOW_ATTRIBUTE(udc_debug);
                debugfs_create_file(dev->gadget.name, \
                        S_IRUGO, NULL, dev, &udc_debug_fops); \
        } while (0)
-#define remove_debug_files(dev) debugfs_remove(debugfs_lookup(dev->gadget.name, NULL))
+#define remove_debug_files(dev) debugfs_lookup_and_remove(dev->gadget.name, NULL)
 
 #else  /* !CONFIG_USB_GADGET_DEBUG_FILES */