2020-07-30 06:38:25

by Wang Hai

[permalink] [raw]
Subject: [PATCH] s390/test_unwind: fix possible memleak in test_unwind()

test_unwind() misses to call kfree(bt) in an error path.
Add the missed function call to fix it.

Fixes: 0610154650f1 ("s390/test_unwind: print verbose unwinding results")
Reported-by: Hulk Robot <[email protected]>
Signed-off-by: Wang Hai <[email protected]>
---
arch/s390/lib/test_unwind.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/arch/s390/lib/test_unwind.c b/arch/s390/lib/test_unwind.c
index 32b7a30b2485..b0b12b46bc57 100644
--- a/arch/s390/lib/test_unwind.c
+++ b/arch/s390/lib/test_unwind.c
@@ -63,6 +63,7 @@ static noinline int test_unwind(struct task_struct *task, struct pt_regs *regs,
break;
if (state.reliable && !addr) {
pr_err("unwind state reliable but addr is 0\n");
+ kfree(bt);
return -EINVAL;
}
sprint_symbol(sym, addr);
--
2.17.1


2020-07-30 07:36:04

by Ilya Leoshkevich

[permalink] [raw]
Subject: Re: [PATCH] s390/test_unwind: fix possible memleak in test_unwind()

On Thu, 2020-07-30 at 14:36 +0800, Wang Hai wrote:
> test_unwind() misses to call kfree(bt) in an error path.
> Add the missed function call to fix it.
>
> Fixes: 0610154650f1 ("s390/test_unwind: print verbose unwinding
> results")
> Reported-by: Hulk Robot <[email protected]>
> Signed-off-by: Wang Hai <[email protected]>
> ---
> arch/s390/lib/test_unwind.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/s390/lib/test_unwind.c
> b/arch/s390/lib/test_unwind.c
> index 32b7a30b2485..b0b12b46bc57 100644
> --- a/arch/s390/lib/test_unwind.c
> +++ b/arch/s390/lib/test_unwind.c
> @@ -63,6 +63,7 @@ static noinline int test_unwind(struct task_struct
> *task, struct pt_regs *regs,
> break;
> if (state.reliable && !addr) {
> pr_err("unwind state reliable but addr is
> 0\n");
> + kfree(bt);
> return -EINVAL;
> }
> sprint_symbol(sym, addr);

Looks good to me, thanks!

Acked-by: Ilya Leoshkevich <[email protected]>

2020-07-31 11:54:18

by Heiko Carstens

[permalink] [raw]
Subject: Re: [PATCH] s390/test_unwind: fix possible memleak in test_unwind()

On Thu, Jul 30, 2020 at 09:35:15AM +0200, Ilya Leoshkevich wrote:
> On Thu, 2020-07-30 at 14:36 +0800, Wang Hai wrote:
> > test_unwind() misses to call kfree(bt) in an error path.
> > Add the missed function call to fix it.
> >
> > Fixes: 0610154650f1 ("s390/test_unwind: print verbose unwinding
> > results")
> > Reported-by: Hulk Robot <[email protected]>
> > Signed-off-by: Wang Hai <[email protected]>
> > ---
> > arch/s390/lib/test_unwind.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/arch/s390/lib/test_unwind.c
> > b/arch/s390/lib/test_unwind.c
> > index 32b7a30b2485..b0b12b46bc57 100644
> > --- a/arch/s390/lib/test_unwind.c
> > +++ b/arch/s390/lib/test_unwind.c
> > @@ -63,6 +63,7 @@ static noinline int test_unwind(struct task_struct
> > *task, struct pt_regs *regs,
> > break;
> > if (state.reliable && !addr) {
> > pr_err("unwind state reliable but addr is
> > 0\n");
> > + kfree(bt);
> > return -EINVAL;
> > }
> > sprint_symbol(sym, addr);
>
> Looks good to me, thanks!
>
> Acked-by: Ilya Leoshkevich <[email protected]>

Applied, thanks!