2019-05-30 09:41:25

by Gen Zhang

[permalink] [raw]
Subject: [PATCH] wimax: debug: fix a missing-check bug in d_parse_params()

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

Signed-off-by: Gen Zhang <[email protected]>
---
diff --git a/include/linux/wimax/debug.h b/include/linux/wimax/debug.h
index aaf24ba..bacd6cb 100644
--- a/include/linux/wimax/debug.h
+++ b/include/linux/wimax/debug.h
@@ -496,6 +496,11 @@ void d_parse_params(struct d_level *d_level, size_t d_level_size,
if (_params == NULL)
return;
params_orig = kstrdup(_params, GFP_KERNEL);
+ if (!params_orig) {
+ printk(KERN_ERR "%s: can't duplicate string '%s'\n",
+ tag, _params);
+ return;
+ }
params = params_orig;
while (1) {
token = strsep(&params, " ");


2019-06-05 06:35:47

by Jiri Slaby

[permalink] [raw]
Subject: Re: [PATCH] wimax: debug: fix a missing-check bug in d_parse_params()

On 30. 05. 19, 11:39, Gen Zhang wrote:
> In d_parse_params(), 'params_orig' is allocated by kstrdup(). It returns
> NULL when fails. So 'params_orig' should be checked.
>
> Signed-off-by: Gen Zhang <[email protected]>
> ---
> diff --git a/include/linux/wimax/debug.h b/include/linux/wimax/debug.h
> index aaf24ba..bacd6cb 100644
> --- a/include/linux/wimax/debug.h
> +++ b/include/linux/wimax/debug.h
> @@ -496,6 +496,11 @@ void d_parse_params(struct d_level *d_level, size_t d_level_size,
> if (_params == NULL)
> return;
> params_orig = kstrdup(_params, GFP_KERNEL);
> + if (!params_orig) {
> + printk(KERN_ERR "%s: can't duplicate string '%s'\n",
> + tag, _params);

We use pr_err these days.

thanks,
--
js
suse labs

2019-06-05 16:14:27

by Gen Zhang

[permalink] [raw]
Subject: Re: [PATCH] wimax: debug: fix a missing-check bug in d_parse_params()

On Wed, Jun 05, 2019 at 08:33:31AM +0200, Jiri Slaby wrote:
> On 30. 05. 19, 11:39, Gen Zhang wrote:
> > In d_parse_params(), 'params_orig' is allocated by kstrdup(). It returns
> > NULL when fails. So 'params_orig' should be checked.
> >
> > Signed-off-by: Gen Zhang <[email protected]>
> > ---
> > diff --git a/include/linux/wimax/debug.h b/include/linux/wimax/debug.h
> > index aaf24ba..bacd6cb 100644
> > --- a/include/linux/wimax/debug.h
> > +++ b/include/linux/wimax/debug.h
> > @@ -496,6 +496,11 @@ void d_parse_params(struct d_level *d_level, size_t d_level_size,
> > if (_params == NULL)
> > return;
> > params_orig = kstrdup(_params, GFP_KERNEL);
> > + if (!params_orig) {
> > + printk(KERN_ERR "%s: can't duplicate string '%s'\n",
> > + tag, _params);
>
> We use pr_err these days.
Thanks for your reply. I used printk() because at least in this file,
printk() is used.

Should I change printk() to pr_err() and revise this patch, or should
all printk() in this file be changed? I hope you can give me some
specific instructions. Actually I don't know what to do when getting
this reply...

Thanks
Gen
>
> thanks,
> --
> js
> suse labs