From e8108a5e92b06e04f891b355fb164a9fc467dc91 Mon Sep 17 00:00:00 2001 From: consp Date: Mon, 31 Jul 2023 22:04:25 +0200 Subject: [PATCH] Reduce descriptor size if remaining bytes is less than request size --- smb2pdu.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/smb2pdu.c b/smb2pdu.c index 591d899a4..e9749fc4b 100644 --- a/smb2pdu.c +++ b/smb2pdu.c @@ -6792,7 +6792,13 @@ static ssize_t smb2_read_rdma_channel(struct ksmbd_work *work, size_t length) { int err; + struct smb2_buffer_desc_v1 *desc; + /* set descriptor lenght to nbytes if less than request size */ + if (length < req->Length) { + desc = (struct smb2_buffer_desc_v1 *)((char *)req + le16_to_cpu(req->ReadChannelInfoOffset)); + desc->length = cpu_to_le32(length); + } err = ksmbd_conn_rdma_write(work->conn, data_buf, length, (struct smb2_buffer_desc_v1 *) ((char *)req + le16_to_cpu(req->ReadChannelInfoOffset)),