Re: [PATCH] SQUASHME: pnfs: check for read_buf error in decode_pnfs_layoutrecall_args

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux