2019-08-15 23:06:10

by Wenwen Wang

[permalink] [raw]
Subject: [PATCH v2] wimax/i2400m: fix a memory leak bug

In i2400m_barker_db_init(), 'options_orig' is allocated through kstrdup()
to hold the original command line options. Then, the options are parsed.
However, if an error occurs during the parsing process, 'options_orig' is
not deallocated, leading to a memory leak bug. To fix this issue, free
'options_orig' before returning the error.

Signed-off-by: Wenwen Wang <[email protected]>
---
drivers/net/wimax/i2400m/fw.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wimax/i2400m/fw.c b/drivers/net/wimax/i2400m/fw.c
index e9fc168..489cba9 100644
--- a/drivers/net/wimax/i2400m/fw.c
+++ b/drivers/net/wimax/i2400m/fw.c
@@ -351,13 +351,15 @@ int i2400m_barker_db_init(const char *_options)
}
result = i2400m_barker_db_add(barker);
if (result < 0)
- goto error_add;
+ goto error_parse_add;
}
kfree(options_orig);
}
return 0;

+error_parse_add:
error_parse:
+ kfree(options_orig);
error_add:
kfree(i2400m_barker_db);
return result;
--
2.7.4


2019-08-18 21:15:37

by David Miller

[permalink] [raw]
Subject: Re: [PATCH v2] wimax/i2400m: fix a memory leak bug

From: Wenwen Wang <[email protected]>
Date: Thu, 15 Aug 2019 15:29:51 -0500

> In i2400m_barker_db_init(), 'options_orig' is allocated through kstrdup()
> to hold the original command line options. Then, the options are parsed.
> However, if an error occurs during the parsing process, 'options_orig' is
> not deallocated, leading to a memory leak bug. To fix this issue, free
> 'options_orig' before returning the error.
>
> Signed-off-by: Wenwen Wang <[email protected]>

Applied, but... looking at the rest of this file I hope nobody is actually
running this code.

2019-08-18 22:23:31

by Perez-Gonzalez, Inaky

[permalink] [raw]
Subject: Re: [PATCH v2] wimax/i2400m: fix a memory leak bug

This driver should be orphaned.

While I can?t certainly say nobody is using it, the HW has not been sold for years and it hasn?t been brought to current LK standards.

If your assesment is the code shall not be used, it?s then another argument towards disconnecting it.

> On Aug 18, 2019, at 14:12, David Miller <[email protected]> wrote:
>
> From: Wenwen Wang <[email protected]>
> Date: Thu, 15 Aug 2019 15:29:51 -0500
>
>> In i2400m_barker_db_init(), 'options_orig' is allocated through kstrdup()
>> to hold the original command line options. Then, the options are parsed.
>> However, if an error occurs during the parsing process, 'options_orig' is
>> not deallocated, leading to a memory leak bug. To fix this issue, free
>> 'options_orig' before returning the error.
>>
>> Signed-off-by: Wenwen Wang <[email protected]>
>
> Applied, but... looking at the rest of this file I hope nobody is actually
> running this code.