diff options
| author | Wentao Liang <vulab@iscas.ac.cn> | 2026-09-17 16:34:39 +0000 |
|---|---|---|
| committer | Paulo Alcantara <pc@manguebit.org> | 2026-09-17 19:29:25 -0300 |
| commit | 717e0a25036b6c92cecace30913b2d874a4c22b8 (patch) | |
| tree | 32363e9fdd9a75ee9eef2c6a9ca9205406d3aab2 /tools/perf/scripts/python/bin | |
| parent | 5f0306e731e2f46e91419eae57eee3a241c055e0 (diff) | |
| download | linux-next-717e0a25036b6c92cecace30913b2d874a4c22b8.tar.gz linux-next-717e0a25036b6c92cecace30913b2d874a4c22b8.zip | |
cifs: Fix server use-after-free in cifs_chan_skip_or_disable()
When a secondary channel is no longer supported by the server,
cifs_chan_skip_or_disable() drops the channel reference with
cifs_put_tcp_session() and then continues to use the server pointer by
calling cifs_signal_cifsd_for_reconnect() on it and reading its
primary_server pointer. cifs_put_tcp_session() can drop the last
reference of the channel and tear it down, so both the channel and the
primary server (whose reference is also dropped by
cifs_put_tcp_session()) can be freed before they are signaled for
reconnect.
Signal the channel and the primary server and capture the primary
server pointer before dropping the channel reference with
cifs_put_tcp_session().
Fixes: f591062bdbf4 ("cifs: handle servers that still advertise multichannel after disabling")
Cc: stable@vger.kernel.org
Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
Signed-off-by: Paulo Alcantara <pc@manguebit.org>
Diffstat (limited to 'tools/perf/scripts/python/bin')
0 files changed, 0 insertions, 0 deletions
