2018-07-23 03:30:41

by Xiaoming Ni

[permalink] [raw]
Subject: [PATCH v2] fs/nfsd: Delete invalid assignment statements in nfsd4_decode_exchange_id

READ_BUF(8);
dummy = be32_to_cpup(p++);
dummy = be32_to_cpup(p++);
...
READ_BUF(4);
dummy = be32_to_cpup(p++);

Assigning value to "dummy" here, but that stored value
is overwritten before it can be used.
At the same time READ_BUF() will re-update the pointer p.

delete invalid assignment statements

Signed-off-by: nixiaoming <[email protected]>
Signed-off-by: Chuck Lever <[email protected]>
Signed-off-by: Trond Myklebust <[email protected]>
---
fs/nfsd/nfs4xdr.c | 2 --
1 file changed, 2 deletions(-)

diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
index a96843c..375ad4b 100644
--- a/fs/nfsd/nfs4xdr.c
+++ b/fs/nfsd/nfs4xdr.c
@@ -1392,8 +1392,6 @@ nfsd4_decode_exchange_id(struct nfsd4_compoundargs *argp,

/* ssp_window and ssp_num_gss_handles */
READ_BUF(8);
- dummy = be32_to_cpup(p++);
- dummy = be32_to_cpup(p++);
break;
default:
goto xdr_error;
--
2.10.1



2018-08-01 17:04:31

by J. Bruce Fields

[permalink] [raw]
Subject: Re: [PATCH v2] fs/nfsd: Delete invalid assignment statements in nfsd4_decode_exchange_id

On Mon, Jul 23, 2018 at 09:57:11AM +0800, nixiaoming wrote:
> READ_BUF(8);
> dummy = be32_to_cpup(p++);
> dummy = be32_to_cpup(p++);
> ...
> READ_BUF(4);
> dummy = be32_to_cpup(p++);
>
> Assigning value to "dummy" here, but that stored value
> is overwritten before it can be used.
> At the same time READ_BUF() will re-update the pointer p.
>
> delete invalid assignment statements

Thanks, applying with a minor comment tweak to clarify that we're
intentionally not reading these:

- /* ssp_window and ssp_num_gss_handles */
+ /* ignore ssp_window and ssp_num_gss_handles: */
READ_BUF(8);
break;

--b.

>
> Signed-off-by: nixiaoming <[email protected]>
> Signed-off-by: Chuck Lever <[email protected]>
> Signed-off-by: Trond Myklebust <[email protected]>
> ---
> fs/nfsd/nfs4xdr.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
> index a96843c..375ad4b 100644
> --- a/fs/nfsd/nfs4xdr.c
> +++ b/fs/nfsd/nfs4xdr.c
> @@ -1392,8 +1392,6 @@ nfsd4_decode_exchange_id(struct nfsd4_compoundargs *argp,
>
> /* ssp_window and ssp_num_gss_handles */
> READ_BUF(8);
> - dummy = be32_to_cpup(p++);
> - dummy = be32_to_cpup(p++);
> break;
> default:
> goto xdr_error;
> --
> 2.10.1

2018-08-02 14:51:49

by Xiaoming Ni

[permalink] [raw]
Subject: RE: [PATCH v2] fs/nfsd: Delete invalid assignment statements in nfsd4_decode_exchange_id

On Wednesday, August 01, 2018 11:18 PM , J. Bruce Fields wrote:
>On Mon, Jul 23, 2018 at 09:57:11AM +0800, nixiaoming wrote:
>> READ_BUF(8);
>> dummy = be32_to_cpup(p++);
>> dummy = be32_to_cpup(p++);
>> ...
>> READ_BUF(4);
>> dummy = be32_to_cpup(p++);
>>
>> Assigning value to "dummy" here, but that stored value
>> is overwritten before it can be used.
>> At the same time READ_BUF() will re-update the pointer p.
>>
>> delete invalid assignment statements
>
>Thanks, applying with a minor comment tweak to clarify that we're
>intentionally not reading these:
>
>- /* ssp_window and ssp_num_gss_handles */
>+ /* ignore ssp_window and ssp_num_gss_handles: */
> READ_BUF(8);
> break;
>
>--b.
>

Thanks for your advice
I will update the patch as soon as possible according to your advice.

>>
>> Signed-off-by: nixiaoming <[email protected]>
>> Signed-off-by: Chuck Lever <[email protected]>2
>> Signed-off-by: Trond Myklebust <[email protected]>
>> ---
>> fs/nfsd/nfs4xdr.c | 2 --
>> 1 file changed, 2 deletions(-)
>>
>> diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
>> index a96843c..375ad4b 100644
>> --- a/fs/nfsd/nfs4xdr.c
>> +++ b/fs/nfsd/nfs4xdr.c
>> @@ -1392,8 +1392,6 @@ nfsd4_decode_exchange_id(struct nfsd4_compoundargs *argp,
>>
>> /* ssp_window and ssp_num_gss_handles */
>> READ_BUF(8);
>> - dummy = be32_to_cpup(p++);
>> - dummy = be32_to_cpup(p++);
>> break;
>> default:
>> goto xdr_error;
>> --
>> 2.10.1




2018-08-02 15:11:02

by J. Bruce Fields

[permalink] [raw]
Subject: Re: [PATCH v2] fs/nfsd: Delete invalid assignment statements in nfsd4_decode_exchange_id

On Thu, Aug 02, 2018 at 01:00:26PM +0000, Nixiaoming wrote:
> On Wednesday, August 01, 2018 11:18 PM , J. Bruce Fields wrote:
> >On Mon, Jul 23, 2018 at 09:57:11AM +0800, nixiaoming wrote:
> >> READ_BUF(8);
> >> dummy = be32_to_cpup(p++);
> >> dummy = be32_to_cpup(p++);
> >> ...
> >> READ_BUF(4);
> >> dummy = be32_to_cpup(p++);
> >>
> >> Assigning value to "dummy" here, but that stored value
> >> is overwritten before it can be used.
> >> At the same time READ_BUF() will re-update the pointer p.
> >>
> >> delete invalid assignment statements
> >
> >Thanks, applying with a minor comment tweak to clarify that we're
> >intentionally not reading these:
> >
> >- /* ssp_window and ssp_num_gss_handles */
> >+ /* ignore ssp_window and ssp_num_gss_handles: */
> > READ_BUF(8);
> > break;
> >
> >--b.
> >
>
> Thanks for your advice
> I will update the patch as soon as possible according to your advice.

I've taken care of it, no need to update.

--b.