misc: vmw_balloon: fix memory leak with using debugfs_lookup()
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 2 Feb 2023 14:11:00 +0000 (15:11 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 8 Feb 2023 12:24:22 +0000 (13:24 +0100)
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: Nadav Amit <namit@vmware.com>
Cc: VMware PV-Drivers Reviewers <pv-drivers@vmware.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/r/20230202141100.2291188-1-gregkh@linuxfoundation.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/vmw_balloon.c

index 61a2be712bf7bb75d67a25ad144da6b19804cab5..9ce9b9e0e9b63b5c73c0cd039996d561dbd4c96b 100644 (file)
@@ -1709,7 +1709,7 @@ static void __init vmballoon_debugfs_init(struct vmballoon *b)
 static void __exit vmballoon_debugfs_exit(struct vmballoon *b)
 {
        static_key_disable(&balloon_stat_enabled.key);
-       debugfs_remove(debugfs_lookup("vmmemctl", NULL));
+       debugfs_lookup_and_remove("vmmemctl", NULL);
        kfree(b->stats);
        b->stats = NULL;
 }