* [PATCH] ksmbd: scope conn->binding slowpath to bound sessions only
@ 2026-04-20 15:31 Hyunwoo Kim
2026-04-21 1:40 ` Namjae Jeon
0 siblings, 1 reply; 2+ messages in thread
From: Hyunwoo Kim @ 2026-04-20 15:31 UTC (permalink / raw)
To: linkinjeon, smfrench, senozhatsky, tom; +Cc: linux-cifs, imv4bel
When the binding SESSION_SETUP sets conn->binding = true, the flag stays
set after the call so that the global session lookup in
ksmbd_session_lookup_all() can find the session, which was not added to
conn->sessions. Because the flag is connection-wide, the global lookup
path will also resolve any other session by id if asked.
Tighten the global lookup so that the returned session must have this
connection registered in its channel xarray (sess->ksmbd_chann_list).
The channel entry is installed by the existing binding_session path in
ntlm_authenticate()/krb5_authenticate() when a SESSION_SETUP completes
successfully, so this condition is a strict equivalent of "this
connection has been accepted as a channel of this session". Connections
that have not bound to a given session cannot reach it via the global
table.
The existing conn->binding gate for entering the slowpath is preserved
so that non-binding connections keep the fast-path-only behavior, and
the session->state check is unchanged.
Fixes: f5a544e3bab7 ("ksmbd: add support for SMB3 multichannel")
Signed-off-by: Hyunwoo Kim <imv4bel@gmail.com>
---
fs/smb/server/mgmt/user_session.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/fs/smb/server/mgmt/user_session.c b/fs/smb/server/mgmt/user_session.c
index a86589408835..ab8852da76f0 100644
--- a/fs/smb/server/mgmt/user_session.c
+++ b/fs/smb/server/mgmt/user_session.c
@@ -547,8 +547,13 @@ struct ksmbd_session *ksmbd_session_lookup_all(struct ksmbd_conn *conn,
struct ksmbd_session *sess;
sess = ksmbd_session_lookup(conn, id);
- if (!sess && conn->binding)
+ if (!sess && conn->binding) {
sess = ksmbd_session_lookup_slowpath(id);
+ if (sess && !xa_load(&sess->ksmbd_chann_list, (long)conn)) {
+ ksmbd_user_session_put(sess);
+ sess = NULL;
+ }
+ }
if (sess && sess->state != SMB2_SESSION_VALID) {
ksmbd_user_session_put(sess);
sess = NULL;
--
2.43.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] ksmbd: scope conn->binding slowpath to bound sessions only
2026-04-20 15:31 [PATCH] ksmbd: scope conn->binding slowpath to bound sessions only Hyunwoo Kim
@ 2026-04-21 1:40 ` Namjae Jeon
0 siblings, 0 replies; 2+ messages in thread
From: Namjae Jeon @ 2026-04-21 1:40 UTC (permalink / raw)
To: Hyunwoo Kim; +Cc: smfrench, senozhatsky, tom, linux-cifs
On Tue, Apr 21, 2026 at 12:31 AM Hyunwoo Kim <imv4bel@gmail.com> wrote:
>
> When the binding SESSION_SETUP sets conn->binding = true, the flag stays
> set after the call so that the global session lookup in
> ksmbd_session_lookup_all() can find the session, which was not added to
> conn->sessions. Because the flag is connection-wide, the global lookup
> path will also resolve any other session by id if asked.
>
> Tighten the global lookup so that the returned session must have this
> connection registered in its channel xarray (sess->ksmbd_chann_list).
> The channel entry is installed by the existing binding_session path in
> ntlm_authenticate()/krb5_authenticate() when a SESSION_SETUP completes
> successfully, so this condition is a strict equivalent of "this
> connection has been accepted as a channel of this session". Connections
> that have not bound to a given session cannot reach it via the global
> table.
>
> The existing conn->binding gate for entering the slowpath is preserved
> so that non-binding connections keep the fast-path-only behavior, and
> the session->state check is unchanged.
>
> Fixes: f5a544e3bab7 ("ksmbd: add support for SMB3 multichannel")
> Signed-off-by: Hyunwoo Kim <imv4bel@gmail.com>
Applied it to #ksmbd-for-next-next.
Thanks!
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-04-21 1:40 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-20 15:31 [PATCH] ksmbd: scope conn->binding slowpath to bound sessions only Hyunwoo Kim
2026-04-21 1:40 ` Namjae Jeon
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox