mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
ksmbd: fix credit count leakage
This patch fix the failure from smb2.credits.single_req_credits_granted test. When client send 8192 credit request, ksmbd return 8191 credit granted. ksmbd should give maximum possible credits that must be granted within the range of not exceeding the max credit to client. Cc: stable@vger.kernel.org Signed-off-by: Namjae Jeon <linkinjeon@kernel.org> Signed-off-by: Steve French <stfrench@microsoft.com>
This commit is contained in:
parent
df14afeed2
commit
84c5aa4792
1 changed files with 1 additions and 5 deletions
|
@ -326,13 +326,9 @@ int smb2_set_rsp_credits(struct ksmbd_work *work)
|
|||
if (hdr->Command == SMB2_NEGOTIATE)
|
||||
aux_max = 1;
|
||||
else
|
||||
aux_max = conn->vals->max_credits - credit_charge;
|
||||
aux_max = conn->vals->max_credits - conn->total_credits;
|
||||
credits_granted = min_t(unsigned short, credits_requested, aux_max);
|
||||
|
||||
if (conn->vals->max_credits - conn->total_credits < credits_granted)
|
||||
credits_granted = conn->vals->max_credits -
|
||||
conn->total_credits;
|
||||
|
||||
conn->total_credits += credits_granted;
|
||||
work->credits_granted += credits_granted;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue