aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarios Makassikis <[email protected]>2021-05-18 10:29:25 +0900
committerNamjae Jeon <[email protected]>2021-05-18 10:31:03 +0900
commit8602c3e2ceef5f50f5718e8442a8ea17530101b4 (patch)
tree5a44fcb506fa1d4279a976b4f0f4e338284d28e8
parent50bf80a553ccb5eca0bc2426e5a082eaf65cb602 (diff)
cifsd: Do not use 0 or 0xFFFFFFFF for TreeID
Returning TreeID=0 is valid behaviour according to [MS-SMB2] 2.2.1.2: TreeId (4 bytes): Uniquely identifies the tree connect for the command. This MUST be 0 for the SMB2 TREE_CONNECT Request. The TreeId can be any unsigned 32-bit integer that is received from a previous SMB2 TREE_CONNECT Response. TreeId SHOULD be set to 0 for the following commands: [...] However, some client implementations reject it as invalid. Windows10 assigns ids starting from 1, and samba4 returns a random uint32_t which suggests there may be other clients that consider it is invalid behaviour. Signed-off-by: Marios Makassikis <[email protected]> Signed-off-by: Namjae Jeon <[email protected]> Signed-off-by: Steve French <[email protected]>
-rw-r--r--fs/cifsd/mgmt/ksmbd_ida.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/fs/cifsd/mgmt/ksmbd_ida.c b/fs/cifsd/mgmt/ksmbd_ida.c
index 3dbc27cb5385..54194d959a5e 100644
--- a/fs/cifsd/mgmt/ksmbd_ida.c
+++ b/fs/cifsd/mgmt/ksmbd_ida.c
@@ -14,9 +14,7 @@ int ksmbd_acquire_smb2_tid(struct ida *ida)
{
int id;
- id = __acquire_id(ida, 0, 0);
- if (id == 0xFFFF)
- id = __acquire_id(ida, 0, 0);
+ id = __acquire_id(ida, 1, 0xFFFFFFFF);
return id;
}