diff options
| author | Namjae Jeon <linkinjeon@kernel.org> | 2024-12-05 21:38:47 +0900 |
|---|---|---|
| committer | Steve French <stfrench@microsoft.com> | 2024-12-10 17:48:06 -0600 |
| commit | b95629435b84b9ecc0c765995204a4d8a913ed52 (patch) | |
| tree | aa358c099928cca7c4f7c31da3bc92ad9b6a615c /fs/smb/server/server.c | |
| parent | 2b904d61a97e8ba79e3bc216ba290fd7e1d85028 (diff) | |
| download | linux-next-b95629435b84b9ecc0c765995204a4d8a913ed52.tar.gz linux-next-b95629435b84b9ecc0c765995204a4d8a913ed52.zip | |
ksmbd: fix racy issue from session lookup and expire
Increment the session reference count within the lock for lookup to avoid
racy issue with session expire.
Cc: stable@vger.kernel.org
Reported-by: zdi-disclosures@trendmicro.com # ZDI-CAN-25737
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'fs/smb/server/server.c')
| -rw-r--r-- | fs/smb/server/server.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/smb/server/server.c b/fs/smb/server/server.c index 930d7566b52e..3ba95bd8edeb 100644 --- a/fs/smb/server/server.c +++ b/fs/smb/server/server.c @@ -241,14 +241,14 @@ send: if (work->tcon) ksmbd_tree_connect_put(work->tcon); smb3_preauth_hash_rsp(work); - if (work->sess) - ksmbd_user_session_put(work->sess); if (work->sess && work->sess->enc && work->encrypted && conn->ops->encrypt_resp) { rc = conn->ops->encrypt_resp(work); if (rc < 0) conn->ops->set_rsp_status(work, STATUS_DATA_ERROR); } + if (work->sess) + ksmbd_user_session_put(work->sess); ksmbd_conn_write(work); } |
