Message ID | 20230804012656.4091877-1-suhui@nfschina.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] fs: lockd: avoid possible wrong NULL parameter | expand |
On Fri, 2023-08-04 at 09:26 +0800, Su Hui wrote: > clang's static analysis warning: fs/lockd/mon.c: line 293, column 2: > Null pointer passed as 2nd argument to memory copy function. > > Assuming 'hostname' is NULL and calling 'nsm_create_handle()', this will > pass NULL as 2nd argument to memory copy function 'memcpy()'. So return > NULL if 'hostname' is invalid. > > Fixes: 77a3ef33e2de ("NSM: More clean up of nsm_get_handle()") > Signed-off-by: Su Hui <suhui@nfschina.com> > --- > v2: > - move NULL check to the callee "nsm_create_handle()" > fs/lockd/mon.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/fs/lockd/mon.c b/fs/lockd/mon.c > index 1d9488cf0534..87a0f207df0b 100644 > --- a/fs/lockd/mon.c > +++ b/fs/lockd/mon.c > @@ -276,6 +276,9 @@ static struct nsm_handle *nsm_create_handle(const struct sockaddr *sap, > { > struct nsm_handle *new; > > + if (!hostname) > + return NULL; > + > new = kzalloc(sizeof(*new) + hostname_len + 1, GFP_KERNEL); > if (unlikely(new == NULL)) > return NULL; Reviewed-by: Jeff Layton <jlayton@kernel.org>
On Thu, Aug 3, 2023 at 6:28 PM Su Hui <suhui@nfschina.com> wrote: > > clang's static analysis warning: fs/lockd/mon.c: line 293, column 2: > Null pointer passed as 2nd argument to memory copy function. > > Assuming 'hostname' is NULL and calling 'nsm_create_handle()', this will > pass NULL as 2nd argument to memory copy function 'memcpy()'. So return > NULL if 'hostname' is invalid. > > Fixes: 77a3ef33e2de ("NSM: More clean up of nsm_get_handle()") > Signed-off-by: Su Hui <suhui@nfschina.com> Thanks for the patch! And thanks for checking clang static analysis reports! Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> > --- > v2: > - move NULL check to the callee "nsm_create_handle()" > fs/lockd/mon.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/fs/lockd/mon.c b/fs/lockd/mon.c > index 1d9488cf0534..87a0f207df0b 100644 > --- a/fs/lockd/mon.c > +++ b/fs/lockd/mon.c > @@ -276,6 +276,9 @@ static struct nsm_handle *nsm_create_handle(const struct sockaddr *sap, > { > struct nsm_handle *new; > > + if (!hostname) > + return NULL; > + > new = kzalloc(sizeof(*new) + hostname_len + 1, GFP_KERNEL); > if (unlikely(new == NULL)) > return NULL; > -- > 2.30.2 >
On Fri, Aug 04, 2023 at 09:26:57AM +0800, Su Hui wrote: > clang's static analysis warning: fs/lockd/mon.c: line 293, column 2: > Null pointer passed as 2nd argument to memory copy function. > > Assuming 'hostname' is NULL and calling 'nsm_create_handle()', this will > pass NULL as 2nd argument to memory copy function 'memcpy()'. So return > NULL if 'hostname' is invalid. > > Fixes: 77a3ef33e2de ("NSM: More clean up of nsm_get_handle()") > Signed-off-by: Su Hui <suhui@nfschina.com> Applied to nfsd-next (for v6.6). > --- > v2: > - move NULL check to the callee "nsm_create_handle()" > fs/lockd/mon.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/fs/lockd/mon.c b/fs/lockd/mon.c > index 1d9488cf0534..87a0f207df0b 100644 > --- a/fs/lockd/mon.c > +++ b/fs/lockd/mon.c > @@ -276,6 +276,9 @@ static struct nsm_handle *nsm_create_handle(const struct sockaddr *sap, > { > struct nsm_handle *new; > > + if (!hostname) > + return NULL; > + > new = kzalloc(sizeof(*new) + hostname_len + 1, GFP_KERNEL); > if (unlikely(new == NULL)) > return NULL; > -- > 2.30.2 >
diff --git a/fs/lockd/mon.c b/fs/lockd/mon.c index 1d9488cf0534..87a0f207df0b 100644 --- a/fs/lockd/mon.c +++ b/fs/lockd/mon.c @@ -276,6 +276,9 @@ static struct nsm_handle *nsm_create_handle(const struct sockaddr *sap, { struct nsm_handle *new; + if (!hostname) + return NULL; + new = kzalloc(sizeof(*new) + hostname_len + 1, GFP_KERNEL); if (unlikely(new == NULL)) return NULL;
clang's static analysis warning: fs/lockd/mon.c: line 293, column 2: Null pointer passed as 2nd argument to memory copy function. Assuming 'hostname' is NULL and calling 'nsm_create_handle()', this will pass NULL as 2nd argument to memory copy function 'memcpy()'. So return NULL if 'hostname' is invalid. Fixes: 77a3ef33e2de ("NSM: More clean up of nsm_get_handle()") Signed-off-by: Su Hui <suhui@nfschina.com> --- v2: - move NULL check to the callee "nsm_create_handle()" fs/lockd/mon.c | 3 +++ 1 file changed, 3 insertions(+)