fs/lockd/mon.c | 3 +++ 1 file changed, 3 insertions(+)
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;
--
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 > -- Chuck Lever
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 > -- Thanks, ~Nick Desaulniers
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>
© 2016 - 2025 Red Hat, Inc.