diff options
| author | Shuangpeng Bai <shuangpeng.kernel@gmail.com> | 2026-08-01 20:48:09 -0400 |
|---|---|---|
| committer | Steve French <stfrench@microsoft.com> | 2026-08-02 20:21:22 -0500 |
| commit | 4986410316b1ae0e63c6ce418e4eb196723626e7 (patch) | |
| tree | 45098ab1fd2bf15883feb2f58619ccdfae568eb1 /tools/perf/scripts/python | |
| parent | c422d34a4ad953473b8cc2b232915a4beaf8c3fa (diff) | |
smb: client: Fix use-after-free in cifs_try_adding_channels()
cifs_try_adding_channels() takes a temporary reference to an interface
before dropping iface_lock. If cifs_ses_add_channel() fails, it drops
that reference and then increments iface->weight_fulfilled.
A concurrent interface list refresh can remove the list reference while
channel creation is in progress. In that case, the failure-path
kref_put() releases the last reference and frees iface. Updating
weight_fulfilled afterward then accesses freed memory.
Increment weight_fulfilled before dropping the temporary reference,
keeping iface alive for the final access.
Fixes: 6aac002bcfd5 ("cifs: failure to add channel on iface should bump up weight")
Cc: stable@vger.kernel.org
Signed-off-by: Shuangpeng Bai <shuangpeng.kernel@gmail.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions
