summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Rogers <linux@joshua.hu>2025-11-07 18:09:47 +0300
committerChuck Lever <chuck.lever@oracle.com>2025-12-08 18:51:26 +0300
commita8ee9099f30654917aa68f55d707b5627e1dbf77 (patch)
treeac91906fc69947e8875fa1d91a0b9cecb907e69c
parentd4b69a6186b215d2dc1ebcab965ed88e8d41768d (diff)
downloadlinux-a8ee9099f30654917aa68f55d707b5627e1dbf77.tar.xz
svcrdma: use rc_pageoff for memcpy byte offset
svc_rdma_copy_inline_range added rc_curpage (page index) to the page base instead of the byte offset rc_pageoff. Use rc_pageoff so copies land within the current page. Found by ZeroPath (https://zeropath.com) Fixes: 8e122582680c ("svcrdma: Move svc_rdma_read_info::ri_pageno to struct svc_rdma_recv_ctxt") Cc: stable@vger.kernel.org Signed-off-by: Joshua Rogers <linux@joshua.hu> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
-rw-r--r--net/sunrpc/xprtrdma/svc_rdma_rw.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/sunrpc/xprtrdma/svc_rdma_rw.c b/net/sunrpc/xprtrdma/svc_rdma_rw.c
index 661b3fe2779f..945fbb374331 100644
--- a/net/sunrpc/xprtrdma/svc_rdma_rw.c
+++ b/net/sunrpc/xprtrdma/svc_rdma_rw.c
@@ -848,7 +848,7 @@ static int svc_rdma_copy_inline_range(struct svc_rqst *rqstp,
head->rc_page_count++;
dst = page_address(rqstp->rq_pages[head->rc_curpage]);
- memcpy(dst + head->rc_curpage, src + offset, page_len);
+ memcpy((unsigned char *)dst + head->rc_pageoff, src + offset, page_len);
head->rc_readbytes += page_len;
head->rc_pageoff += page_len;