Re: [PATCH v2] fs: lockd: avoid possible wrong NULL parameter

From: Nick Desaulniers
Date: Fri Aug 04 2023 - 11:50:09 EST


On Thu, Aug 3, 2023 at 6:28 PM Su Hui <suhui@xxxxxxxxxxxx> 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@xxxxxxxxxxxx>

Thanks for the patch! And thanks for checking clang static analysis reports!
Reviewed-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>

> ---
> 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