diff mbox series

[1/1] NFSv4.2: fix copy stateid copying for the async copy

Message ID 20210330190359.13057-1-olga.kornievskaia@gmail.com (mailing list archive)
State New, archived
Headers show
Series [1/1] NFSv4.2: fix copy stateid copying for the async copy | expand

Commit Message

Olga Kornievskaia March 30, 2021, 7:03 p.m. UTC
From: Olga Kornievskaia <kolga@netapp.com>

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 <dan.carpenter@oracle.com>
Fixes: e0639dc5805a: "NFSD introduce async copy feature"
Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
---
 fs/nfsd/nfs4proc.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Chuck Lever March 31, 2021, 4:39 p.m. UTC | #1
Hi Olga-

> On Mar 30, 2021, at 3:03 PM, Olga Kornievskaia <olga.kornievskaia@gmail.com> wrote:
> 
> From: Olga Kornievskaia <kolga@netapp.com>
> 
> 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 <dan.carpenter@oracle.com>
> Fixes: e0639dc5805a: "NFSD introduce async copy feature"
> Signed-off-by: Olga Kornievskaia <kolga@netapp.com>

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
Olga Kornievskaia March 31, 2021, 8:54 p.m. UTC | #2
On Wed, Mar 31, 2021 at 12:39 PM Chuck Lever III <chuck.lever@oracle.com> wrote:
>
> Hi Olga-
>
> > On Mar 30, 2021, at 3:03 PM, Olga Kornievskaia <olga.kornievskaia@gmail.com> wrote:
> >
> > From: Olga Kornievskaia <kolga@netapp.com>
> >
> > 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 <dan.carpenter@oracle.com>
> > Fixes: e0639dc5805a: "NFSD introduce async copy feature"
> > Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
>
> 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
>
>
>
Chuck Lever April 1, 2021, 1:35 p.m. UTC | #3
> On Mar 31, 2021, at 4:54 PM, Olga Kornievskaia <olga.kornievskaia@gmail.com> wrote:
> 
> On Wed, Mar 31, 2021 at 12:39 PM Chuck Lever III <chuck.lever@oracle.com> wrote:
>> 
>> Hi Olga-
>> 
>>> On Mar 30, 2021, at 3:03 PM, Olga Kornievskaia <olga.kornievskaia@gmail.com> wrote:
>>> 
>>> From: Olga Kornievskaia <kolga@netapp.com>
>>> 
>>> 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 <dan.carpenter@oracle.com>
>>> Fixes: e0639dc5805a: "NFSD introduce async copy feature"
>>> Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
>> 
>> 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
diff mbox series

Patch

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");