2023-07-11 08:25:48

by Dmitry Antipov

[permalink] [raw]
Subject: [PATCH] wifi: mwifiex: fix memory leak in mwifiex_histogram_read()

Always free the zeroed page on return from mwifiex_histogram_read().

Signed-off-by: Dmitry Antipov <[email protected]>
---
drivers/net/wireless/marvell/mwifiex/debugfs.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/marvell/mwifiex/debugfs.c b/drivers/net/wireless/marvell/mwifiex/debugfs.c
index 52b18f4a774b..0cdd6c50c1c0 100644
--- a/drivers/net/wireless/marvell/mwifiex/debugfs.c
+++ b/drivers/net/wireless/marvell/mwifiex/debugfs.c
@@ -253,8 +253,11 @@ mwifiex_histogram_read(struct file *file, char __user *ubuf,
if (!p)
return -ENOMEM;

- if (!priv || !priv->hist_data)
- return -EFAULT;
+ if (!priv || !priv->hist_data) {
+ ret = -EFAULT;
+ goto free_and_exit;
+ }
+
phist_data = priv->hist_data;

p += sprintf(p, "\n"
@@ -309,6 +312,8 @@ mwifiex_histogram_read(struct file *file, char __user *ubuf,
ret = simple_read_from_buffer(ubuf, count, ppos, (char *)page,
(unsigned long)p - page);

+free_and_exit:
+ free_page(page);
return ret;
}

--
2.41.0



2023-07-13 01:00:54

by Jakub Kicinski

[permalink] [raw]
Subject: Re: [PATCH] wifi: mwifiex: fix memory leak in mwifiex_histogram_read()

On Tue, 11 Jul 2023 11:24:53 +0300 Dmitry Antipov wrote:
> Always free the zeroed page on return from mwifiex_histogram_read().

Fixes: ?

2023-07-13 04:47:02

by Dmitry Antipov

[permalink] [raw]
Subject: [PATCH] [v2] wifi: mwifiex: fix memory leak in mwifiex_histogram_read()

Always free the zeroed page on return from mwifiex_histogram_read().

Fixes: cbf6e05527a76 ("mwifiex: add rx histogram statistics support")
Signed-off-by: Dmitry Antipov <[email protected]>
---
v2: add Fixes: reference (Jakub Kicinski)
---
drivers/net/wireless/marvell/mwifiex/debugfs.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/marvell/mwifiex/debugfs.c b/drivers/net/wireless/marvell/mwifiex/debugfs.c
index 52b18f4a774b..0cdd6c50c1c0 100644
--- a/drivers/net/wireless/marvell/mwifiex/debugfs.c
+++ b/drivers/net/wireless/marvell/mwifiex/debugfs.c
@@ -253,8 +253,11 @@ mwifiex_histogram_read(struct file *file, char __user *ubuf,
if (!p)
return -ENOMEM;

- if (!priv || !priv->hist_data)
- return -EFAULT;
+ if (!priv || !priv->hist_data) {
+ ret = -EFAULT;
+ goto free_and_exit;
+ }
+
phist_data = priv->hist_data;

p += sprintf(p, "\n"
@@ -309,6 +312,8 @@ mwifiex_histogram_read(struct file *file, char __user *ubuf,
ret = simple_read_from_buffer(ubuf, count, ppos, (char *)page,
(unsigned long)p - page);

+free_and_exit:
+ free_page(page);
return ret;
}

--
2.41.0