On Jun. 29, 2010, 15:22 +0300, "William A. (Andy) Adamson" <androsadamson@xxxxxxxxx> wrote: > I see that NFS4ERR_RESOURCE is returned throughout callback_xdr.c ,but > it is not a legal error return for NFSv4.1. -ENOMEM would be better. Sigh... it is indeed. You mean NFS4ERR_DELAY? Benny > > -->Andy > > On Tue, Jun 29, 2010 at 6:55 AM, Benny Halevy <bhalevy@xxxxxxxxxxx> wrote: >> read_buf may return NULL. return NFS4ERR_RESOURCE in this case. >> >> Signed-off-by: Benny Halevy <bhalevy@xxxxxxxxxxx> >> --- >> fs/nfs/callback_xdr.c | 8 ++++++++ >> 1 files changed, 8 insertions(+), 0 deletions(-) >> >> diff --git a/fs/nfs/callback_xdr.c b/fs/nfs/callback_xdr.c >> index 7e34bb3..2f69f0d 100644 >> --- a/fs/nfs/callback_xdr.c >> +++ b/fs/nfs/callback_xdr.c >> @@ -247,6 +247,10 @@ static __be32 decode_pnfs_layoutrecall_args(struct svc_rqst *rqstp, >> goto out; >> >> p = read_buf(xdr, 2 * sizeof(uint64_t)); >> + if (unlikely(p == NULL)) { >> + status = htonl(NFS4ERR_RESOURCE); >> + goto out; >> + } >> p = xdr_decode_hyper(p, &args->cbl_seg.offset); >> p = xdr_decode_hyper(p, &args->cbl_seg.length); >> status = decode_stateid(xdr, &args->cbl_stateid); >> @@ -254,6 +258,10 @@ static __be32 decode_pnfs_layoutrecall_args(struct svc_rqst *rqstp, >> goto out; >> } else if (args->cbl_recall_type == RETURN_FSID) { >> p = read_buf(xdr, 2 * sizeof(uint64_t)); >> + if (unlikely(p == NULL)) { >> + status = htonl(NFS4ERR_RESOURCE); >> + goto out; >> + } >> p = xdr_decode_hyper(p, &args->cbl_fsid.major); >> p = xdr_decode_hyper(p, &args->cbl_fsid.minor); >> } >> -- >> 1.6.6.1 >> >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in >> the body of a message to majordomo@xxxxxxxxxxxxxxx >> More majordomo info at http://vger.kernel.org/majordomo-info.html >> > -- > To unsubscribe from this list: send the line "unsubscribe linux-nfs" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html