2019-05-30 09:07:56

by Gen Zhang

[permalink] [raw]
Subject: [PATCH] orangefs-debugfs: fix a missing-check bug in debug_string_to_mask()

In debug_string_to_mask(), 'strsep_fodder' is allocated by kstrdup().
It returns NULL when fails. So 'strsep_fodder' should be checked.

Signed-off-by: Gen Zhang <blackgod016574.gmail>
---
diff --git a/fs/orangefs/orangefs-debugfs.c b/fs/orangefs/orangefs-debugfs.c
index 87b1a6f..a9a9aac 100644
--- a/fs/orangefs/orangefs-debugfs.c
+++ b/fs/orangefs/orangefs-debugfs.c
@@ -888,6 +888,8 @@ static void debug_string_to_mask(char *debug_string, void *mask, int type)
char *unchecked_keyword;
int i;
char *strsep_fodder = kstrdup(debug_string, GFP_KERNEL);
+ if (!strsep_fodder)
+ return;
char *original_pointer;
int element_count = 0;
struct client_debug_mask *c_mask = NULL;


2019-06-05 06:35:25

by Jiri Slaby

[permalink] [raw]
Subject: Re: [PATCH] orangefs-debugfs: fix a missing-check bug in debug_string_to_mask()

On 30. 05. 19, 11:04, Gen Zhang wrote:
> In debug_string_to_mask(), 'strsep_fodder' is allocated by kstrdup().
> It returns NULL when fails. So 'strsep_fodder' should be checked.
>
> Signed-off-by: Gen Zhang <blackgod016574.gmail>
> ---
> diff --git a/fs/orangefs/orangefs-debugfs.c b/fs/orangefs/orangefs-debugfs.c
> index 87b1a6f..a9a9aac 100644
> --- a/fs/orangefs/orangefs-debugfs.c
> +++ b/fs/orangefs/orangefs-debugfs.c
> @@ -888,6 +888,8 @@ static void debug_string_to_mask(char *debug_string, void *mask, int type)
> char *unchecked_keyword;
> int i;
> char *strsep_fodder = kstrdup(debug_string, GFP_KERNEL);
> + if (!strsep_fodder)
> + return;
> char *original_pointer;

You should get a compiler error/warning about mixing declarations with code.

thanks,
--
js
suse labs