All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Cameron <jic23@kernel.org>
To: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>,
	Fabio Estevam <festevam@gmail.com>
Cc: linux-iio@vger.kernel.org, Fabio Estevam <fabio.estevam@freescale.com>
Subject: Re: [PATCH v3 5/6] iio: orientation: hid-sensor-rotation: Fix memory leak in probe()
Date: Sun, 17 May 2015 09:11:45 +0100	[thread overview]
Message-ID: <55584D41.4050303@kernel.org> (raw)
In-Reply-To: <1431543783.11262.81.camel@spandruv-DESK3.jf.intel.com>

On 13/05/15 20:03, Srinivas Pandruvada wrote:
> On Wed, 2015-05-13 at 15:06 -0300, Fabio Estevam wrote:
>> From: Fabio Estevam <fabio.estevam@freescale.com>
>>
>> 'channels' is allocated via kmemdup and it is never freed in the
>> subsequent error paths.
>>
>> Use 'indio_dev->channels' directly instead, so that we avoid such
>> memory leak problem.
>>
>> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
> Reviewed-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Applied to the togreg branch of iio.git - initially pushed out as testing.
Thanks.

>> ---
>> Build-tested only.
>>
>> Changes since v2:
>> - None
>> Changes since v1:
>> - Make clear in the commit log that the proble only occurs in the error
>> paths
>>
>>  drivers/iio/orientation/hid-sensor-rotation.c | 15 ++++++++-------
>>  1 file changed, 8 insertions(+), 7 deletions(-)
>>
>> diff --git a/drivers/iio/orientation/hid-sensor-rotation.c b/drivers/iio/orientation/hid-sensor-rotation.c
>> index 4afb6c7..b6ee50f 100644
>> --- a/drivers/iio/orientation/hid-sensor-rotation.c
>> +++ b/drivers/iio/orientation/hid-sensor-rotation.c
>> @@ -222,7 +222,6 @@ static int hid_dev_rot_probe(struct platform_device *pdev)
>>  	struct iio_dev *indio_dev;
>>  	struct dev_rot_state *rot_state;
>>  	struct hid_sensor_hub_device *hsdev = pdev->dev.platform_data;
>> -	struct iio_chan_spec *channels;
>>  
>>  	indio_dev = devm_iio_device_alloc(&pdev->dev,
>>  					  sizeof(struct dev_rot_state));
>> @@ -243,21 +242,23 @@ static int hid_dev_rot_probe(struct platform_device *pdev)
>>  		return ret;
>>  	}
>>  
>> -	channels = devm_kmemdup(&pdev->dev, dev_rot_channels,
>> -					sizeof(dev_rot_channels), GFP_KERNEL);
>> -	if (!channels) {
>> +	indio_dev->channels = devm_kmemdup(&pdev->dev, dev_rot_channels,
>> +					   sizeof(dev_rot_channels),
>> +					   GFP_KERNEL);
>> +	if (!indio_dev->channels) {
>>  		dev_err(&pdev->dev, "failed to duplicate channels\n");
>>  		return -ENOMEM;
>>  	}
>>  
>> -	ret = dev_rot_parse_report(pdev, hsdev, channels,
>> -			HID_USAGE_SENSOR_DEVICE_ORIENTATION, rot_state);
>> +	ret = dev_rot_parse_report(pdev, hsdev,
>> +				   (struct iio_chan_spec *)indio_dev->channels,
>> +				   HID_USAGE_SENSOR_DEVICE_ORIENTATION,
>> +				   rot_state);
>>  	if (ret) {
>>  		dev_err(&pdev->dev, "failed to setup attributes\n");
>>  		return ret;
>>  	}
>>  
>> -	indio_dev->channels = channels;
>>  	indio_dev->num_channels = ARRAY_SIZE(dev_rot_channels);
>>  	indio_dev->dev.parent = &pdev->dev;
>>  	indio_dev->info = &dev_rot_info;
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-iio" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


  reply	other threads:[~2015-05-17  8:11 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-13 18:06 [PATCH v3 1/6] iio: accel: hid-sensor-accel-3d: Fix memory leak in probe() Fabio Estevam
2015-05-13 18:06 ` [PATCH v3 2/6] iio: gyro: hid-sensor-gyro-3d: " Fabio Estevam
2015-05-13 18:52   ` Srinivas Pandruvada
2015-05-17  8:10     ` Jonathan Cameron
2015-05-13 18:06 ` [PATCH v3 3/6] iio: light: hid-sensor-als.c: " Fabio Estevam
2015-05-13 18:52   ` Srinivas Pandruvada
2015-05-17  8:11     ` Jonathan Cameron
2015-05-13 18:06 ` [PATCH v3 4/6] iio: orientation: hid-sensor-incl-3d: " Fabio Estevam
2015-05-13 18:54   ` Srinivas Pandruvada
2015-05-17  8:11     ` Jonathan Cameron
2015-05-13 18:06 ` [PATCH v3 5/6] iio: orientation: hid-sensor-rotation: " Fabio Estevam
2015-05-13 19:03   ` Srinivas Pandruvada
2015-05-17  8:11     ` Jonathan Cameron [this message]
2015-05-13 18:06 ` [PATCH v3 6/6] iio: pressure: hid-sensor-press: " Fabio Estevam
2015-05-13 19:03   ` Srinivas Pandruvada
2015-05-17  8:11     ` Jonathan Cameron
2015-05-13 18:51 ` [PATCH v3 1/6] iio: accel: hid-sensor-accel-3d: " Srinivas Pandruvada
2015-05-17  8:09   ` Jonathan Cameron

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=55584D41.4050303@kernel.org \
    --to=jic23@kernel.org \
    --cc=fabio.estevam@freescale.com \
    --cc=festevam@gmail.com \
    --cc=linux-iio@vger.kernel.org \
    --cc=srinivas.pandruvada@linux.intel.com \
    /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.