]> www.infradead.org Git - users/jedix/linux-maple.git/commit
smb: client: Avoid race in open_cached_dir with lease breaks
authorPaul Aurich <paul@darkrain42.org>
Wed, 7 May 2025 05:28:09 +0000 (22:28 -0700)
committerSteve French <stfrench@microsoft.com>
Wed, 7 May 2025 20:24:46 +0000 (15:24 -0500)
commit3ca02e63edccb78ef3659bebc68579c7224a6ca2
tree91bc586c7988d6550311fe7382f6352b09ea5dd2
parentd90b023718a17d308d831fde36b3bb6fa3b511e0
smb: client: Avoid race in open_cached_dir with lease breaks

A pre-existing valid cfid returned from find_or_create_cached_dir might
race with a lease break, meaning open_cached_dir doesn't consider it
valid, and thinks it's newly-constructed. This leaks a dentry reference
if the allocation occurs before the queued lease break work runs.

Avoid the race by extending holding the cfid_list_lock across
find_or_create_cached_dir and when the result is checked.

Cc: stable@vger.kernel.org
Reviewed-by: Henrique Carvalho <henrique.carvalho@suse.com>
Signed-off-by: Paul Aurich <paul@darkrain42.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/client/cached_dir.c