]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
svcrdma: Catch another Reply chunk overflow case
authorChuck Lever <chuck.lever@oracle.com>
Thu, 12 Nov 2020 19:47:14 +0000 (14:47 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Sep 2024 09:06:46 +0000 (11:06 +0200)
[ Upstream commit e5decb2eb5f4d1f64ba9196b4bad0e26a441c81c ]

When space in the Reply chunk runs out in the middle of a segment,
we end up passing a zero-length SGL to rdma_rw_ctx_init(), and it
oopses.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Stable-dep-of: ffc17e1479e8 ("platform/x86: dell-smbios: Fix error path in dell_smbios_init()")
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/sunrpc/xprtrdma/svc_rdma_rw.c

index 80a0c0e8759094899a80430fe6a83884d95feb62..7c50eddb8d3cafb7da3f0b8f278385eeada0e867 100644 (file)
@@ -460,6 +460,8 @@ svc_rdma_build_writes(struct svc_rdma_write_info *info,
                offset += info->wi_seg_off;
 
                write_len = min(remaining, length - info->wi_seg_off);
+               if (!write_len)
+                       goto out_overflow;
                ctxt = svc_rdma_get_rw_ctxt(rdma,
                                            (write_len >> PAGE_SHIFT) + 2);
                if (!ctxt)