linux-stable/fs/sysfs
Alan Stern 57baab0f37 fs: sysfs: Fix reference leak in sysfs_break_active_protection()
commit a90bca2228 upstream.

The sysfs_break_active_protection() routine has an obvious reference
leak in its error path.  If the call to kernfs_find_and_get() fails then
kn will be NULL, so the companion sysfs_unbreak_active_protection()
routine won't get called (and would only cause an access violation by
trying to dereference kn->parent if it was called).  As a result, the
reference to kobj acquired at the start of the function will never be
released.

Fix the leak by adding an explicit kobject_put() call when kn is NULL.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Fixes: 2afc9166f7 ("scsi: sysfs: Introduce sysfs_{un,}break_active_protection()")
Cc: Bart Van Assche <bvanassche@acm.org>
Cc: stable@vger.kernel.org
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Acked-by: Tejun Heo <tj@kernel.org>
Link: https://lore.kernel.org/r/8a4d3f0f-c5e3-4b70-a188-0ca433f9e6f9@rowland.harvard.edu
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-05-02 16:18:32 +02:00
..
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
dir.c sysfs: convert BUG_ON to WARN_ON 2019-01-07 08:53:32 +01:00
file.c fs: sysfs: Fix reference leak in sysfs_break_active_protection() 2024-05-02 16:18:32 +02:00
group.c sysfs: Add sysfs_update_groups function 2019-06-03 11:58:20 +02:00
mount.c no need to protect against put_user_ns(NULL) 2019-05-25 17:59:54 -04:00
symlink.c sysfs: convert BUG_ON to WARN_ON 2019-01-07 08:53:32 +01:00
sysfs.h sysfs, kobject: allow creating kobject belonging to arbitrary users 2018-07-20 23:44:35 -07:00