From patchwork Fri Dec 11 17:25:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Trond Myklebust X-Patchwork-Id: 11969223 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.0 required=3.0 tests=BAYES_00,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0CBCDC4361B for ; Fri, 11 Dec 2020 19:11:39 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id CD9F722D03 for ; Fri, 11 Dec 2020 19:11:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2395092AbgLKR1H (ORCPT ); Fri, 11 Dec 2020 12:27:07 -0500 Received: from mail.kernel.org ([198.145.29.99]:50808 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2395244AbgLKR0o (ORCPT ); Fri, 11 Dec 2020 12:26:44 -0500 From: trondmy@kernel.org Authentication-Results: mail.kernel.org; dkim=permerror (bad message/signature format) To: linux-nfs@vger.kernel.org Subject: [PATCH v2 10/15] NFSv4.2: decode_read_plus_data() must skip padding after data segment Date: Fri, 11 Dec 2020 12:25:16 -0500 Message-Id: <20201211172521.5567-11-trondmy@kernel.org> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201211172521.5567-10-trondmy@kernel.org> References: <20201211172521.5567-1-trondmy@kernel.org> <20201211172521.5567-2-trondmy@kernel.org> <20201211172521.5567-3-trondmy@kernel.org> <20201211172521.5567-4-trondmy@kernel.org> <20201211172521.5567-5-trondmy@kernel.org> <20201211172521.5567-6-trondmy@kernel.org> <20201211172521.5567-7-trondmy@kernel.org> <20201211172521.5567-8-trondmy@kernel.org> <20201211172521.5567-9-trondmy@kernel.org> <20201211172521.5567-10-trondmy@kernel.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org From: Trond Myklebust All XDR opaque object sizes are 32-bit aligned, and a data segment is no exception. Signed-off-by: Trond Myklebust --- fs/nfs/nfs42xdr.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/fs/nfs/nfs42xdr.c b/fs/nfs/nfs42xdr.c index 1c21db640f4d..4c6bce3dbaeb 100644 --- a/fs/nfs/nfs42xdr.c +++ b/fs/nfs/nfs42xdr.c @@ -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) {