From: Jonathan Cameron <jic23@kernel.org>
To: Daniel Baluta <daniel.baluta@intel.com>,
Fabio Estevam <festevam@gmail.com>
Cc: Alexey Khoroshilov <khoroshilov@ispras.ru>,
Hartmut Knaack <knaack.h@gmx.de>,
Lars-Peter Clausen <lars@metafoo.de>,
Peter Meerwald <pmeerw@pmeerw.net>,
"linux-iio@vger.kernel.org" <linux-iio@vger.kernel.org>,
linux-kernel <linux-kernel@vger.kernel.org>,
ldv-project@linuxtesting.org
Subject: Re: [PATCH] iio: hid-sensors: Fix memory leak on failure path in hid_prox_probe()
Date: Thu, 07 May 2015 10:18:28 +0100 [thread overview]
Message-ID: <554B2DE4.2030207@kernel.org> (raw)
In-Reply-To: <CAEnQRZB9702wokxfMM4Yq=qsQJ8OEs5adtupd5uRw+WU2ifiBQ@mail.gmail.com>
On 07/05/15 08:43, Daniel Baluta wrote:
> On Thu, May 7, 2015 at 1:00 AM, Fabio Estevam <festevam@gmail.com> wrote:
>> On Wed, May 6, 2015 at 6:48 PM, Alexey Khoroshilov
>> <khoroshilov@ispras.ru> wrote:
>>> If prox_parse_report() fails, memory allocated for channels is not
>>> deallocated, since it is still in local variable channels
>>> while kfree() is called with indio_dev->channels.
>>>
>>> Found by Linux Driver Verification project (linuxtesting.org).
>>>
>>> Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
>>> ---
>>> drivers/iio/light/hid-sensor-prox.c | 3 ++-
>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/iio/light/hid-sensor-prox.c b/drivers/iio/light/hid-sensor-prox.c
>>> index 91ecc46ffeaa..d0d188108a11 100644
>>> --- a/drivers/iio/light/hid-sensor-prox.c
>>> +++ b/drivers/iio/light/hid-sensor-prox.c
>>> @@ -281,8 +281,9 @@ static int hid_prox_probe(struct platform_device *pdev)
>>> ret = prox_parse_report(pdev, hsdev, channels,
>>> HID_USAGE_SENSOR_PROX, prox_state);
>>> if (ret) {
>>> + kfree(channels);
>>> dev_err(&pdev->dev, "failed to setup attributes\n");
>>> - goto error_free_dev_mem;
>>> + return ret;
>>
>> Then the other calls to error_free_dev_mem will also miss to call
>> 'kfree(channels)'.
>>
>> What about this fix instead?
>>
>> --- a/drivers/iio/light/hid-sensor-prox.c
>> +++ b/drivers/iio/light/hid-sensor-prox.c
>> @@ -332,7 +332,7 @@ error_remove_trigger:
>> error_unreg_buffer_funcs:
>> iio_triggered_buffer_cleanup(indio_dev);
>> error_free_dev_mem:
>> - kfree(indio_dev->channels);
>> + kfree(channels);
>> return ret;
>> }
>
> Both patches are correct and I think we should go
> with Fabio's version since it's consistent with the
> rest of the code.
>
> thanks,
> Daniel.
>
Agreed. I'm travelling (again, yawn) for the next few days
but Fabio, could you send a formal version of your patch
with signoffs etc and a reported by for Alexey (or under
the circumstances Alexey, feel free to sign off on it
as well).
Thanks,
Jonathan
prev parent reply other threads:[~2015-05-07 9:18 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-06 21:48 [PATCH] iio: hid-sensors: Fix memory leak on failure path in hid_prox_probe() Alexey Khoroshilov
2015-05-06 22:00 ` Fabio Estevam
2015-05-06 22:14 ` Alexey Khoroshilov
2015-05-06 22:32 ` Fabio Estevam
2015-05-06 23:13 ` Alexey Khoroshilov
2015-05-07 7:43 ` Daniel Baluta
2015-05-07 9:18 ` Jonathan Cameron [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=554B2DE4.2030207@kernel.org \
--to=jic23@kernel.org \
--cc=daniel.baluta@intel.com \
--cc=festevam@gmail.com \
--cc=khoroshilov@ispras.ru \
--cc=knaack.h@gmx.de \
--cc=lars@metafoo.de \
--cc=ldv-project@linuxtesting.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pmeerw@pmeerw.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.