2021-03-30 19:05:38

by Olga Kornievskaia

[permalink] [raw]
Subject: [PATCH 1/1] NFSv4.2: fix copy stateid copying for the async copy

From: Olga Kornievskaia <[email protected]>

This patch fixes Dan Carpenter's report that the static checker
found a problem where memcpy() was copying into too small of a buffer.

Reported-by: Dan Carpenter <[email protected]>
Fixes: e0639dc5805a: "NFSD introduce async copy feature"
Signed-off-by: Olga Kornievskaia <[email protected]>
---
fs/nfsd/nfs4proc.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
index dd9f38d072dd..e13c4c81fb89 100644
--- a/fs/nfsd/nfs4proc.c
+++ b/fs/nfsd/nfs4proc.c
@@ -1538,8 +1538,8 @@ nfsd4_copy(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
if (!nfs4_init_copy_state(nn, copy))
goto out_err;
refcount_set(&async_copy->refcount, 1);
- memcpy(&copy->cp_res.cb_stateid, &copy->cp_stateid,
- sizeof(copy->cp_stateid));
+ memcpy(&copy->cp_res.cb_stateid, &copy->cp_stateid.stid,
+ sizeof(copy->cp_res.cb_stateid));
dup_copy_fields(copy, async_copy);
async_copy->copy_task = kthread_create(nfsd4_do_async_copy,
async_copy, "%s", "copy thread");
--
2.18.2


2021-03-31 16:40:59

by Chuck Lever III

[permalink] [raw]
Subject: Re: [PATCH 1/1] NFSv4.2: fix copy stateid copying for the async copy

Hi Olga-

> On Mar 30, 2021, at 3:03 PM, Olga Kornievskaia <[email protected]> wrote:
>
> From: Olga Kornievskaia <[email protected]>
>
> This patch fixes Dan Carpenter's report that the static checker
> found a problem where memcpy() was copying into too small of a buffer.
>
> Reported-by: Dan Carpenter <[email protected]>
> Fixes: e0639dc5805a: "NFSD introduce async copy feature"
> Signed-off-by: Olga Kornievskaia <[email protected]>

Thanks! Pushed to the for-next topic branch in:

git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git

With a Reviewed-by: from Dai.


> ---
> fs/nfsd/nfs4proc.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
> index dd9f38d072dd..e13c4c81fb89 100644
> --- a/fs/nfsd/nfs4proc.c
> +++ b/fs/nfsd/nfs4proc.c
> @@ -1538,8 +1538,8 @@ nfsd4_copy(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
> if (!nfs4_init_copy_state(nn, copy))
> goto out_err;
> refcount_set(&async_copy->refcount, 1);
> - memcpy(&copy->cp_res.cb_stateid, &copy->cp_stateid,
> - sizeof(copy->cp_stateid));
> + memcpy(&copy->cp_res.cb_stateid, &copy->cp_stateid.stid,
> + sizeof(copy->cp_res.cb_stateid));
> dup_copy_fields(copy, async_copy);
> async_copy->copy_task = kthread_create(nfsd4_do_async_copy,
> async_copy, "%s", "copy thread");
> --
> 2.18.2
>

--
Chuck Lever



2021-03-31 20:56:49

by Olga Kornievskaia

[permalink] [raw]
Subject: Re: [PATCH 1/1] NFSv4.2: fix copy stateid copying for the async copy

On Wed, Mar 31, 2021 at 12:39 PM Chuck Lever III <[email protected]> wrote:
>
> Hi Olga-
>
> > On Mar 30, 2021, at 3:03 PM, Olga Kornievskaia <[email protected]> wrote:
> >
> > From: Olga Kornievskaia <[email protected]>
> >
> > This patch fixes Dan Carpenter's report that the static checker
> > found a problem where memcpy() was copying into too small of a buffer.
> >
> > Reported-by: Dan Carpenter <[email protected]>
> > Fixes: e0639dc5805a: "NFSD introduce async copy feature"
> > Signed-off-by: Olga Kornievskaia <[email protected]>
>
> Thanks! Pushed to the for-next topic branch in:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git
>
> With a Reviewed-by: from Dai.

Thank you Chuck. It was pointed out that I messed up the "Fixes" line.
Do you want me to send another or can you fix it locally?

>
>
> > ---
> > fs/nfsd/nfs4proc.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
> > index dd9f38d072dd..e13c4c81fb89 100644
> > --- a/fs/nfsd/nfs4proc.c
> > +++ b/fs/nfsd/nfs4proc.c
> > @@ -1538,8 +1538,8 @@ nfsd4_copy(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
> > if (!nfs4_init_copy_state(nn, copy))
> > goto out_err;
> > refcount_set(&async_copy->refcount, 1);
> > - memcpy(&copy->cp_res.cb_stateid, &copy->cp_stateid,
> > - sizeof(copy->cp_stateid));
> > + memcpy(&copy->cp_res.cb_stateid, &copy->cp_stateid.stid,
> > + sizeof(copy->cp_res.cb_stateid));
> > dup_copy_fields(copy, async_copy);
> > async_copy->copy_task = kthread_create(nfsd4_do_async_copy,
> > async_copy, "%s", "copy thread");
> > --
> > 2.18.2
> >
>
> --
> Chuck Lever
>
>
>

2021-04-01 18:11:36

by Chuck Lever III

[permalink] [raw]
Subject: Re: [PATCH 1/1] NFSv4.2: fix copy stateid copying for the async copy



> On Mar 31, 2021, at 4:54 PM, Olga Kornievskaia <[email protected]> wrote:
>
> On Wed, Mar 31, 2021 at 12:39 PM Chuck Lever III <[email protected]> wrote:
>>
>> Hi Olga-
>>
>>> On Mar 30, 2021, at 3:03 PM, Olga Kornievskaia <[email protected]> wrote:
>>>
>>> From: Olga Kornievskaia <[email protected]>
>>>
>>> This patch fixes Dan Carpenter's report that the static checker
>>> found a problem where memcpy() was copying into too small of a buffer.
>>>
>>> Reported-by: Dan Carpenter <[email protected]>
>>> Fixes: e0639dc5805a: "NFSD introduce async copy feature"
>>> Signed-off-by: Olga Kornievskaia <[email protected]>
>>
>> Thanks! Pushed to the for-next topic branch in:
>>
>> git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git
>>
>> With a Reviewed-by: from Dai.
>
> Thank you Chuck. It was pointed out that I messed up the "Fixes" line.

Interesting that checkpatch.pl did not catch this.


> Do you want me to send another or can you fix it locally?

I'll take care of it. The tag change is entirely mechanical.


>>> ---
>>> fs/nfsd/nfs4proc.c | 4 ++--
>>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
>>> index dd9f38d072dd..e13c4c81fb89 100644
>>> --- a/fs/nfsd/nfs4proc.c
>>> +++ b/fs/nfsd/nfs4proc.c
>>> @@ -1538,8 +1538,8 @@ nfsd4_copy(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
>>> if (!nfs4_init_copy_state(nn, copy))
>>> goto out_err;
>>> refcount_set(&async_copy->refcount, 1);
>>> - memcpy(&copy->cp_res.cb_stateid, &copy->cp_stateid,
>>> - sizeof(copy->cp_stateid));
>>> + memcpy(&copy->cp_res.cb_stateid, &copy->cp_stateid.stid,
>>> + sizeof(copy->cp_res.cb_stateid));
>>> dup_copy_fields(copy, async_copy);
>>> async_copy->copy_task = kthread_create(nfsd4_do_async_copy,
>>> async_copy, "%s", "copy thread");
>>> --
>>> 2.18.2
>>>
>>
>> --
>> Chuck Lever

--
Chuck Lever