Re: [PATCH] nfsroot: Fix missing check for return value of strsep()

From: Trond Myklebust
Date: Wed Jun 14 2023 - 11:20:15 EST


On Wed, 2023-06-14 at 07:30 -0700, Chenyuan Mi wrote:
> [You don't often get email from cymi20@xxxxxxxxxxxx. Learn why this
> is important at https://aka.ms/LearnAboutSenderIdentification ;]
>
> The strsep() function in root_nfs_parse_options() may return NULL
> if argument 'incoming' is NULL. Since 'incoming' has Null check in
> this function, it is also need to add Null check for return value
>  of strsep().
>
> Found by our static analysis tool.
>
> Signed-off-by: Chenyuan Mi <cymi20@xxxxxxxxxxxx>
> ---
>  fs/nfs/nfsroot.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/nfs/nfsroot.c b/fs/nfs/nfsroot.c
> index 620329b7e6ae..55c594dede9f 100644
> --- a/fs/nfs/nfsroot.c
> +++ b/fs/nfs/nfsroot.c
> @@ -198,7 +198,7 @@ static int __init root_nfs_parse_options(char
> *incoming, char *exppath,
>          * Set the NFS remote path
>          */
>         p = strsep(&incoming, ",");
> -       if (*p != '\0' && strcmp(p, "default") != 0)
> +       if (p != NULL && *p != '\0' && strcmp(p, "default") != 0)
>                 if (root_nfs_copy(exppath, p, exppathlen))
>                         return -1;
>

Huh? root_nfs_parse_options() is called from exactly two callsites, and
in both cases 'incoming' is guaranteed to be non-NULL.

NACKed
--
Trond Myklebust
Linux NFS client maintainer, Hammerspace
trond.myklebust@xxxxxxxxxxxxxxx