From: Ricardo Labiaga <Ricardo.Labiaga@netapp.com>
To: bfields@fieldses.org
Cc: linux-nfs@vger.kernel.org, Ricardo Labiaga <Ricardo.Labiaga@netapp.com>
Subject: [PATCH] nfsd41: nfsd4_decode_compound() does not recognize all ops
Date: Fri, 11 Dec 2009 19:10:49 -0800 [thread overview]
Message-ID: <1260587449-29538-2-git-send-email-Ricardo.Labiaga@netapp.com> (raw)
In-Reply-To: <1260587449-29538-1-git-send-email-Ricardo.Labiaga@netapp.com>
The server incorrectly assumes that the operations in the
array start with value 0. The first operation (OP_ACCESS)
has a value of 3, causing the check in nfsd4_decode_compound
to be off.
Instead of comparing that the operation number is less than
the number of elements in the array, the server should verify
that it is less than the maximum valid operation number
defined by LAST_NFS4_OP.
Signed-off-by: Ricardo Labiaga <Ricardo.Labiaga@netapp.com>
---
fs/nfsd/nfs4xdr.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
index 0fbd50c..b83a24c 100644
--- a/fs/nfsd/nfs4xdr.c
+++ b/fs/nfsd/nfs4xdr.c
@@ -1442,7 +1442,7 @@ nfsd4_decode_compound(struct nfsd4_compoundargs *argp)
}
op->opnum = ntohl(*argp->p++);
- if (op->opnum >= OP_ACCESS && op->opnum < ops->nops)
+ if (op->opnum >= OP_ACCESS && op->opnum <= LAST_NFS4_OP)
op->status = ops->decoders[op->opnum](argp, &op->u);
else {
op->opnum = OP_ILLEGAL;
--
1.5.4.3
next prev parent reply other threads:[~2009-12-12 3:11 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-12 3:10 [PATCH] nfsd41: Create the recovery entry for the NFSv4.1 client Ricardo Labiaga
2009-12-12 3:10 ` Ricardo Labiaga [this message]
2009-12-17 15:54 ` [PATCH] nfsd41: nfsd4_decode_compound() does not recognize all ops J. Bruce Fields
2009-12-17 16:39 ` [PATCH] nfsd41: nfsd4_decode_compound() does not recognize allops Labiaga, Ricardo
2010-01-14 17:26 ` [PATCH] nfsd41: Create the recovery entry for the NFSv4.1 client J. Bruce Fields
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1260587449-29538-2-git-send-email-Ricardo.Labiaga@netapp.com \
--to=ricardo.labiaga@netapp.com \
--cc=bfields@fieldses.org \
--cc=linux-nfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.