linux-i2c.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Wolfram Sang <w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
To: kernel-janitors-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: i2c-drivers: Remove dangling pointers
Date: Sat, 20 Mar 2010 15:12:41 +0100	[thread overview]
Message-ID: <1269094385-16114-1-git-send-email-w.sang@pengutronix.de> (raw)

Hi,

here is a patch series fixing I2C drivers which free their private data
structure and leave the clientdata pointer dangling or do the cleanup in the
wrong order. All occurences were found using coccinelle [1] and the semantic
patch below. The matches have been reviewed, and sometimes adapted.

The complete series goes to linux-i2c and kernel-janitors. The rest of the CCs
is handled per patch using get_maintainers.pl (which always adds LKML, so you
have the complete series there, too).

Please review, comment, apply!

Kind regards,

   Wolfram

[1] http://coccinelle.lip6.fr/

===

@@
type T;
identifier client, data;
@@

// Check if function uses clientdata
(
	i2c_set_clientdata(client, data);
|
	data = i2c_get_clientdata(client);
|
	T data = i2c_get_clientdata(client);
)
// Anything inbetween
	...
// Check if clientdata gets NULLed before data is freed
(
	i2c_set_clientdata(client, NULL);
	...
 	kfree(data);
|
+	i2c_set_clientdata(client, NULL);
 	kfree(data);
	...
-	i2c_set_clientdata(client, NULL);
|
+	i2c_set_clientdata(client, NULL);
? 	kfree(data);
)

===

 drivers/gpio/adp5588-gpio.c                   |    1 +
 drivers/gpio/max732x.c                        |    1 +
 drivers/gpio/pca953x.c                        |    1 +
 drivers/gpio/pcf857x.c                        |    7 ++++---
 drivers/hwmon/ad7414.c                        |    2 ++
 drivers/hwmon/ad7418.c                        |    2 ++
 drivers/hwmon/adm1021.c                       |    2 ++
 drivers/hwmon/adm1025.c                       |    2 ++
 drivers/hwmon/adm1026.c                       |    2 ++
 drivers/hwmon/adm1029.c                       |    2 ++
 drivers/hwmon/adm1031.c                       |    2 ++
 drivers/hwmon/adm9240.c                       |    2 ++
 drivers/hwmon/ads7828.c                       |    5 ++++-
 drivers/hwmon/adt7462.c                       |    2 ++
 drivers/hwmon/adt7470.c                       |    2 ++
 drivers/hwmon/adt7475.c                       |    2 ++
 drivers/hwmon/amc6821.c                       |    2 ++
 drivers/hwmon/asb100.c                        |    2 ++
 drivers/hwmon/atxp1.c                         |    2 ++
 drivers/hwmon/dme1737.c                       |    2 ++
 drivers/hwmon/ds1621.c                        |    2 ++
 drivers/hwmon/f75375s.c                       |    4 ++--
 drivers/hwmon/g760a.c                         |    4 ++--
 drivers/hwmon/gl518sm.c                       |    2 ++
 drivers/hwmon/gl520sm.c                       |    2 ++
 drivers/hwmon/lm63.c                          |    2 ++
 drivers/hwmon/lm77.c                          |    2 ++
 drivers/hwmon/lm78.c                          |    2 ++
 drivers/hwmon/lm80.c                          |    2 ++
 drivers/hwmon/lm83.c                          |    2 ++
 drivers/hwmon/lm85.c                          |    2 ++
 drivers/hwmon/lm87.c                          |    2 ++
 drivers/hwmon/lm90.c                          |    2 ++
 drivers/hwmon/lm92.c                          |    2 ++
 drivers/hwmon/lm93.c                          |    2 ++
 drivers/hwmon/lm95241.c                       |    1 +
 drivers/hwmon/ltc4215.c                       |    2 ++
 drivers/hwmon/ltc4245.c                       |    2 ++
 drivers/hwmon/max1619.c                       |    2 ++
 drivers/hwmon/max6650.c                       |    2 ++
 drivers/hwmon/pcf8591.c                       |    6 +++++-
 drivers/hwmon/smsc47m192.c                    |    2 ++
 drivers/hwmon/thmc50.c                        |    2 ++
 drivers/hwmon/tmp401.c                        |    1 +
 drivers/hwmon/w83791d.c                       |    2 ++
 drivers/hwmon/w83792d.c                       |    2 ++
 drivers/hwmon/w83793.c                        |    1 +
 drivers/hwmon/w83l785ts.c                     |    2 ++
 drivers/hwmon/w83l786ng.c                     |    2 ++
 drivers/input/keyboard/lm8323.c               |    2 ++
 drivers/input/keyboard/qt2160.c               |    2 +-
 drivers/input/touchscreen/mcs5000_ts.c        |    2 +-
 drivers/input/touchscreen/tsc2007.c           |    1 +
 drivers/leds/leds-lp3944.c                    |    2 +-
 drivers/leds/leds-pca9532.c                   |    4 ++--
 drivers/leds/leds-pca955x.c                   |    4 ++--
 drivers/macintosh/therm_adt746x.c             |    2 ++
 drivers/media/radio/radio-tea5764.c           |    2 ++
 drivers/media/radio/si470x/radio-si470x-i2c.c |    2 +-
 drivers/media/video/cs5345.c                  |    1 +
 drivers/media/video/cs53l32a.c                |    1 +
 drivers/media/video/ir-kbd-i2c.c              |    2 ++
 drivers/media/video/tda9840.c                 |    1 +
 drivers/media/video/tea6415c.c                |    1 +
 drivers/media/video/tea6420.c                 |    1 +
 drivers/media/video/ths7303.c                 |    1 +
 drivers/mfd/88pm860x-i2c.c                    |    1 +
 drivers/mfd/ab3100-core.c                     |    2 ++
 drivers/mfd/da903x.c                          |    1 +
 drivers/mfd/menelaus.c                        |    3 ++-
 drivers/mfd/pcf50633-core.c                   |    1 +
 drivers/mfd/tps65010.c                        |    2 +-
 drivers/mfd/wm8350-i2c.c                      |    2 ++
 drivers/misc/ad525x_dpot.c                    |    2 +-
 drivers/misc/eeprom/at24.c                    |    2 +-
 drivers/misc/eeprom/eeprom.c                  |    6 +++++-
 drivers/misc/eeprom/max6875.c                 |    2 ++
 drivers/misc/ics932s401.c                     |    2 ++
 drivers/misc/isl29003.c                       |    6 +++++-
 drivers/misc/tsl2550.c                        |    6 +++++-
 drivers/mtd/maps/pismo.c                      |    8 +++++++-
 drivers/power/bq27x00_battery.c               |    2 ++
 drivers/power/ds2782_battery.c                |    4 ++--
 drivers/regulator/max1586.c                   |    2 +-
 drivers/regulator/max8649.c                   |    3 ++-
 drivers/regulator/max8660.c                   |    2 +-
 drivers/rtc/rtc-ds1307.c                      |    2 ++
 drivers/rtc/rtc-fm3130.c                      |    2 ++
 drivers/rtc/rtc-m41t80.c                      |    2 ++
 drivers/rtc/rtc-pcf8563.c                     |    2 ++
 drivers/rtc/rtc-pcf8583.c                     |    2 ++
 drivers/rtc/rtc-rs5c372.c                     |    2 ++
 drivers/rtc/rtc-s35390a.c                     |    4 ++--
 drivers/staging/dream/synaptics_i2c_rmi.c     |    2 ++
 drivers/staging/go7007/wis-saa7113.c          |    1 +
 drivers/staging/go7007/wis-saa7115.c          |    1 +
 drivers/staging/go7007/wis-tw9903.c           |    1 +
 drivers/staging/iio/adc/max1363_core.c        |    2 ++
 drivers/staging/iio/light/tsl2563.c           |    2 ++
 drivers/usb/otg/isp1301_omap.c                |    5 ++++-
 drivers/video/matrox/matroxfb_maven.c         |    1 +
 drivers/w1/masters/ds2482.c                   |    2 ++
 102 files changed, 198 insertions(+), 33 deletions(-)

             reply	other threads:[~2010-03-20 14:12 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-20 14:12 Wolfram Sang [this message]
     [not found] ` <1269094385-16114-1-git-send-email-w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2010-03-20 14:12   ` [PATCH 01/24] mtd/maps/pismo: remove dangling pointer and a leak Wolfram Sang
     [not found]     ` <1269094385-16114-2-git-send-email-w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2010-03-20 14:57       ` Russell King
     [not found]         ` <20100320145729.GA5399-f404yB8NqCZvn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2010-03-20 15:31           ` Wolfram Sang
     [not found]             ` <20100320153146.GB5515-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2010-03-20 15:41               ` Russell King
     [not found]                 ` <20100320154113.GB14470-f404yB8NqCZvn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2010-03-21  8:30                   ` David Woodhouse
2010-03-30 12:26                     ` Wolfram Sang
2010-03-20 14:12   ` [PATCH 02/24] power/ds2782: really clear i2c_clientdata on exit Wolfram Sang
     [not found]     ` <1269094385-16114-3-git-send-email-w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2010-03-20 21:53       ` Ryan Mallon
2010-03-22 17:08       ` Anton Vorontsov
     [not found]         ` <20100322170810.GA30325-wnGakbxT3iijyJ0x5qLZdcN33GVbZNy3@public.gmane.org>
2010-03-30 12:28           ` Wolfram Sang
2010-03-20 14:12   ` [PATCH 03/24] usb/otg/isp1301_omap: Fix dangling pointer Wolfram Sang
     [not found]     ` <1269094385-16114-4-git-send-email-w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2010-03-20 20:09       ` Felipe Balbi
2010-03-30 12:30         ` Wolfram Sang
2010-03-20 14:12   ` [PATCH 05/24] hwmon: fix dangling pointers Wolfram Sang
     [not found]     ` <1269094385-16114-6-git-send-email-w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2010-03-29 14:30       ` Jean Delvare
2010-03-20 14:12   ` [PATCH 07/24] input/touchscreen: " Wolfram Sang
2010-03-20 14:12   ` [PATCH 11/24] media/radio/si470x: " Wolfram Sang
2010-03-20 14:12   ` [PATCH 16/24] power: " Wolfram Sang
2010-03-20 14:12   ` [PATCH 17/24] regulator: " Wolfram Sang
     [not found]     ` <1269094385-16114-18-git-send-email-w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2010-03-20 17:23       ` Mark Brown
2010-03-22 19:49     ` Liam Girdwood
2010-03-30 12:47       ` Wolfram Sang
2010-03-20 14:13   ` [PATCH 19/24] staging/dream: " Wolfram Sang
2010-03-20 14:13   ` [PATCH 22/24] staging/iio/light: " Wolfram Sang
2010-03-22 12:41     ` Jonathan Cameron
2010-04-05 22:59   ` i2c-drivers: Remove " Ben Dooks
     [not found]     ` <20100405225925.GC32401-elnMNo+KYs3pIgCt6eIbzw@public.gmane.org>
2010-04-06  0:06       ` Wolfram Sang
2010-03-20 14:12 ` [PATCH 04/24] gpio: fix " Wolfram Sang
     [not found]   ` <1269094385-16114-5-git-send-email-w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2010-03-30 12:31     ` Wolfram Sang
2010-03-20 14:12 ` [PATCH 06/24] input/keyboard: " Wolfram Sang
2010-03-20 19:20   ` Dmitry Torokhov
     [not found]     ` <20100320192007.GA28402-WlK9ik9hQGAhIp7JRqBPierSzoNAToWh@public.gmane.org>
2010-03-21  1:59       ` Wolfram Sang
2010-03-30 12:35       ` Wolfram Sang
2010-03-20 14:12 ` [PATCH 08/24] leds: " Wolfram Sang
     [not found]   ` <1269094385-16114-9-git-send-email-w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2010-03-30 12:36     ` Wolfram Sang
2010-03-20 14:12 ` [PATCH 09/24] macintosh: " Wolfram Sang
2010-03-20 14:12 ` [PATCH 10/24] media/radio: " Wolfram Sang
2010-03-20 14:12 ` [PATCH 12/24] media/video: " Wolfram Sang
2010-03-20 22:02   ` Hans Verkuil
     [not found]     ` <201003202302.49526.hverkuil-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>
2010-03-21 11:31       ` Wolfram Sang
2010-03-21 13:46       ` Jean Delvare
     [not found]         ` <20100321144655.4747fd2a-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2010-03-21 14:14           ` Mark Brown
2010-03-21 16:09             ` Hans Verkuil
     [not found]               ` <201003211709.56319.hverkuil-qWit8jRvyhVmR6Xm/wNWPw@public.gmane.org>
2010-03-22 20:33                 ` Jean Delvare
2010-03-22 21:51                   ` Mark Brown
2010-03-23  0:35                   ` Wolfram Sang
2010-03-30 12:39                 ` Wolfram Sang
2010-04-01  8:32                   ` Hans Verkuil
2010-03-22 20:36           ` Jean Delvare
2010-03-20 14:12 ` [PATCH 13/24] mfd: " Wolfram Sang
2010-03-20 17:22   ` Mark Brown
     [not found]     ` <20100320172241.GD1549-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2010-03-20 20:25       ` Jean Delvare
2010-03-21  2:09     ` Wolfram Sang
     [not found]   ` <1269094385-16114-14-git-send-email-w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2010-03-25 10:41     ` Samuel Ortiz
     [not found]       ` <20100325104137.GA3720-jcdQHdrhKHMdnm+yROfE0A@public.gmane.org>
2010-03-30 12:41         ` Wolfram Sang
2010-03-20 14:12 ` [PATCH 14/24] misc: " Wolfram Sang
     [not found]   ` <1269094385-16114-15-git-send-email-w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2010-03-30 12:44     ` Wolfram Sang
2010-03-20 14:12 ` [PATCH 15/24] misc/eeprom: " Wolfram Sang
2010-03-20 14:12 ` [PATCH 18/24] rtc: " Wolfram Sang
     [not found]   ` <1269094385-16114-19-git-send-email-w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2010-03-30 12:49     ` Wolfram Sang
2010-03-20 14:13 ` [PATCH 20/24] staging/go7007: " Wolfram Sang
2010-03-20 14:13 ` [PATCH 21/24] staging/iio/adc: " Wolfram Sang
     [not found]   ` <1269094385-16114-22-git-send-email-w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2010-03-22 12:41     ` Jonathan Cameron
2010-03-20 14:13 ` [PATCH 23/24] video/matrox: " Wolfram Sang
     [not found]   ` <1269094385-16114-24-git-send-email-w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2010-04-05 14:04     ` James Simmons
2010-03-20 14:13 ` [PATCH 24/24] w1/masters: " Wolfram Sang

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=1269094385-16114-1-git-send-email-w.sang@pengutronix.de \
    --to=w.sang-bicnvbalz9megne8c9+irq@public.gmane.org \
    --cc=kernel-janitors-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).