Commit 5c4afe2a authored by Trond Myklebust's avatar Trond Myklebust
Browse files

NFSv4.2: decode_read_plus_data() must skip padding after data segment



All XDR opaque object sizes are 32-bit aligned, and a data segment is no
exception.

Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
parent 1ee63101
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -1038,7 +1038,9 @@ static int decode_read_plus_data(struct xdr_stream *xdr, struct nfs_pgio_res *re

	p = xdr_decode_hyper(p, &offset);
	count = be32_to_cpup(p);
	recvd = xdr_align_data(xdr, res->count, count);
	recvd = xdr_align_data(xdr, res->count, xdr_align_size(count));
	if (recvd > count)
		recvd = count;
	res->count += recvd;

	if (count > recvd) {