2009-08-03 19:01:00

by John W. Linville

[permalink] [raw]
Subject: [PATCH] iwlwifi: avoid memory leak in iwl_dbgfs_nvm_read

Reported-by: Martin Ettl <[email protected]>
Signed-off-by: John W. Linville <[email protected]>
---
drivers/net/wireless/iwlwifi/iwl-debugfs.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-debugfs.c b/drivers/net/wireless/iwlwifi/iwl-debugfs.c
index 11e08c0..6525e41 100644
--- a/drivers/net/wireless/iwlwifi/iwl-debugfs.c
+++ b/drivers/net/wireless/iwlwifi/iwl-debugfs.c
@@ -318,7 +318,8 @@ static ssize_t iwl_dbgfs_nvm_read(struct file *file,
ptr = priv->eeprom;
if (!ptr) {
IWL_ERR(priv, "Invalid EEPROM/OTP memory\n");
- return -ENOMEM;
+ ret = -ENOMEM;
+ goto out;
}
pos += scnprintf(buf + pos, buf_size - pos, "NVM Type: %s\n",
(priv->nvm_device_type == NVM_DEVICE_TYPE_OTP)
@@ -333,6 +334,8 @@ static ssize_t iwl_dbgfs_nvm_read(struct file *file,
}

ret = simple_read_from_buffer(user_buf, count, ppos, buf, pos);
+
+out:
kfree(buf);
return ret;
}
--
1.6.2.5



2009-08-03 19:46:00

by John W. Linville

[permalink] [raw]
Subject: Re: [PATCH] iwlwifi: avoid memory leak in iwl_dbgfs_nvm_read

On Mon, Aug 03, 2009 at 12:08:12PM -0700, reinette chatre wrote:
> On Mon, 2009-08-03 at 11:49 -0700, John W. Linville wrote:
> > Reported-by: Martin Ettl <[email protected]>
> > Signed-off-by: John W. Linville <[email protected]>
> > ---
> > drivers/net/wireless/iwlwifi/iwl-debugfs.c | 5 ++++-
> > 1 files changed, 4 insertions(+), 1 deletions(-)
> >
> > diff --git a/drivers/net/wireless/iwlwifi/iwl-debugfs.c b/drivers/net/wireless/iwlwifi/iwl-debugfs.c
> > index 11e08c0..6525e41 100644
> > --- a/drivers/net/wireless/iwlwifi/iwl-debugfs.c
> > +++ b/drivers/net/wireless/iwlwifi/iwl-debugfs.c
> > @@ -318,7 +318,8 @@ static ssize_t iwl_dbgfs_nvm_read(struct file *file,
> > ptr = priv->eeprom;
> > if (!ptr) {
> > IWL_ERR(priv, "Invalid EEPROM/OTP memory\n");
> > - return -ENOMEM;
> > + ret = -ENOMEM;
> > + goto out;
> > }
> > pos += scnprintf(buf + pos, buf_size - pos, "NVM Type: %s\n",
> > (priv->nvm_device_type == NVM_DEVICE_TYPE_OTP)
> > @@ -333,6 +334,8 @@ static ssize_t iwl_dbgfs_nvm_read(struct file *file,
> > }
> >
> > ret = simple_read_from_buffer(user_buf, count, ppos, buf, pos);
> > +
> > +out:
> > kfree(buf);
> > return ret;
> > }
>
> There was another patch also that was acked by Zhu Yi. See
> http://thread.gmane.org/gmane.linux.kernel.wireless.general/37032

Yes, I see that now -- perhaps Martin will take-up Julia's habit of
posting patches himself... :-)

John
--
John W. Linville Someday the world will need a hero, and you
[email protected] might be all we have. Be ready.
?Viva Honduras Libre!

2009-08-03 19:08:12

by Reinette Chatre

[permalink] [raw]
Subject: Re: [PATCH] iwlwifi: avoid memory leak in iwl_dbgfs_nvm_read

On Mon, 2009-08-03 at 11:49 -0700, John W. Linville wrote:
> Reported-by: Martin Ettl <[email protected]>
> Signed-off-by: John W. Linville <[email protected]>
> ---
> drivers/net/wireless/iwlwifi/iwl-debugfs.c | 5 ++++-
> 1 files changed, 4 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/net/wireless/iwlwifi/iwl-debugfs.c b/drivers/net/wireless/iwlwifi/iwl-debugfs.c
> index 11e08c0..6525e41 100644
> --- a/drivers/net/wireless/iwlwifi/iwl-debugfs.c
> +++ b/drivers/net/wireless/iwlwifi/iwl-debugfs.c
> @@ -318,7 +318,8 @@ static ssize_t iwl_dbgfs_nvm_read(struct file *file,
> ptr = priv->eeprom;
> if (!ptr) {
> IWL_ERR(priv, "Invalid EEPROM/OTP memory\n");
> - return -ENOMEM;
> + ret = -ENOMEM;
> + goto out;
> }
> pos += scnprintf(buf + pos, buf_size - pos, "NVM Type: %s\n",
> (priv->nvm_device_type == NVM_DEVICE_TYPE_OTP)
> @@ -333,6 +334,8 @@ static ssize_t iwl_dbgfs_nvm_read(struct file *file,
> }
>
> ret = simple_read_from_buffer(user_buf, count, ppos, buf, pos);
> +
> +out:
> kfree(buf);
> return ret;
> }

There was another patch also that was acked by Zhu Yi. See
http://thread.gmane.org/gmane.linux.kernel.wireless.general/37032


Reinette