From: Trond Myklebust Date: Thu, 7 Apr 2022 18:10:23 +0000 (-0400) Subject: SUNRPC: svc_tcp_sendmsg() should handle errors from xdr_alloc_bvec() X-Git-Tag: v5.10.111~43 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=b3c00be2ff8bc7e211fb04ec42facf0e4c876800;p=users%2Fdwmw2%2Flinux.git SUNRPC: svc_tcp_sendmsg() should handle errors from xdr_alloc_bvec() [ Upstream commit b056fa070814897be32d83b079dbc311375588e7 ] The allocation is done with GFP_KERNEL, but it could still fail in a low memory situation. Fixes: 4a85a6a3320b ("SUNRPC: Handle TCP socket sends with kernel_sendpage() again") Signed-off-by: Trond Myklebust Signed-off-by: Sasha Levin --- diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c index eba1714bf09ab..6d5bb8bfed38b 100644 --- a/net/sunrpc/svcsock.c +++ b/net/sunrpc/svcsock.c @@ -1091,7 +1091,9 @@ static int svc_tcp_sendmsg(struct socket *sock, struct msghdr *msg, int flags, ret; *sentp = 0; - xdr_alloc_bvec(xdr, GFP_KERNEL); + ret = xdr_alloc_bvec(xdr, GFP_KERNEL); + if (ret < 0) + return ret; msg->msg_flags = MSG_MORE; ret = kernel_sendmsg(sock, msg, &rm, 1, rm.iov_len);