From: Trond Myklebust Date: Fri, 15 Mar 2019 16:47:34 +0000 (-0400) Subject: SUNRPC: Fix a client regression when handling oversized replies X-Git-Tag: Ubuntu-5.10.0-12.13~5761^2~5 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=9734ad57b0f1a367fd3a00d717f97f8c00d9edb7;p=mirror_ubuntu-hirsute-kernel.git SUNRPC: Fix a client regression when handling oversized replies If the server sends a reply that is larger than the pre-allocated buffer, then the current code may fail to register how much of the stream that it has finished reading. This again can lead to hangs. Fixes: e92053a52e68 ("SUNRPC: Handle zero length fragments correctly") Signed-off-by: Trond Myklebust --- diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c index 42f45d33dc56..9359539907ba 100644 --- a/net/sunrpc/xprtsock.c +++ b/net/sunrpc/xprtsock.c @@ -453,7 +453,7 @@ xs_read_xdr_buf(struct socket *sock, struct msghdr *msg, int flags, goto out; if (ret != want) goto out; - } else + } else if (offset < seek_init) offset = seek_init; ret = -EMSGSIZE; out: