linux/drivers
Christian Borntraeger 05d419b11f [S390] Fix memory leak in /proc/cio_ignore
There is a memory leak in /proc/cio_ignore. The iterator is allocated
in cio_ignore_proc_seq_start, but never freed in
cio_ignore_proc_seq_stop, because we cannot use the iterator
that was passed by seqfile. The seqfile interface passes the last
seen iterator to the stop function and not the first one. Since our
next function will return NULL at the end, the iter passed to
cio_ignore_proc_seq_stop is NULL. The original iter has leaked.
The solution is to use seq_open_private.

Found with kmemleak:
unreferenced object 0x1c720580 (size 32):
  comm "head", pid 973, jiffies 4294958302
  hex dump (first 32 bytes):
    00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00  ................
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
  backtrace:
    [<0000000000203154>] kmem_cache_alloc+0x190/0x19c
    [<00000000003fb462>] cio_ignore_proc_seq_start+0x5e/0x128
    [<0000000000231018>] seq_read+0xc8/0x4bc
    [<0000000000273954>] proc_reg_read+0xa8/0xf4
    [<000000000020e3d8>] vfs_read+0xac/0x1a4
    [<000000000020e5c6>] SyS_read+0x52/0xa8
    [<000000000011836e>] sysc_noemu+0x10/0x16
    [<0000004690b7936c>] 0x4690b7936c

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2009-10-06 10:35:07 +02:00
..
accessibility
acpi Merge branch 'acpi-pad' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2009-10-04 15:03:00 -07:00
amba
ata trivial: fix comment typo in drivers/ata/pata_hpt37x.c 2009-09-21 15:15:53 +02:00
atm net: Make setsockopt() optlen be unsigned. 2009-09-30 16:12:20 -07:00
auxdisplay
base mm: oom analysis: add shmem vmstat 2009-09-22 07:17:27 -07:00
block Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block 2009-10-04 12:39:14 -07:00
bluetooth
cdrom sysctl: remove "struct file *" argument of ->proc_handler 2009-09-24 07:21:04 -07:00
char headers: remove sched.h from poll.h 2009-10-04 15:05:10 -07:00
clocksource
connector connector: Removed the destruct_data callback since it is always kfree_skb() 2009-10-02 10:54:05 -07:00
cpufreq
cpuidle cpuidle: menu governor: reduce latency on exit 2009-09-22 07:17:45 -07:00
crypto
dca
dio
dma Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx into for-linus 2009-09-23 18:31:11 +10:00
edac edac: core: remove completion-wait for complete with rcu_barrier 2009-09-24 07:21:05 -07:00
eisa
firewire headers: remove sched.h from poll.h 2009-10-04 15:05:10 -07:00
firmware iSCSI/iBFT: use proper address translation 2009-10-05 12:05:40 -07:00
gpio const: constify remaining file_operations 2009-10-01 16:11:11 -07:00
gpu Merge branch 'drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2009-09-30 08:03:00 -07:00
hid headers: remove sched.h from poll.h 2009-10-04 15:05:10 -07:00
hwmon ltc4215/ltc4245: Discard obsolete detect methods 2009-10-04 22:53:42 +02:00
i2c i2c: Hide probe errors caused by ACPI resource conflicts 2009-10-04 22:53:45 +02:00
ide Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide-2.6 2009-10-05 14:39:22 -07:00
idle
ieee1394 const: mark struct vm_struct_operations 2009-09-27 11:39:25 -07:00
ieee802154
infiniband headers: remove sched.h from poll.h 2009-10-04 15:05:10 -07:00
input headers: remove sched.h from poll.h 2009-10-04 15:05:10 -07:00
isdn headers: remove sched.h from poll.h 2009-10-04 15:05:10 -07:00
leds leds: leds-pca9532 - Drop unused module parameters 2009-10-04 22:53:43 +02:00
lguest const: constify remaining file_operations 2009-10-01 16:11:11 -07:00
macintosh macintosh: Don't assume i2c device probing always succeeds 2009-10-04 22:53:46 +02:00
mca
md Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block 2009-10-04 12:39:14 -07:00
media headers: remove sched.h from poll.h 2009-10-04 15:05:10 -07:00
memstick memstick: move dev_dbg 2009-09-24 07:21:05 -07:00
message Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-09-22 07:51:45 -07:00
mfd headers: remove sched.h from poll.h 2009-10-04 15:05:10 -07:00
misc max6875: Discard obsolete detect method 2009-10-04 22:53:41 +02:00
mmc Merge master.kernel.org:/home/rmk/linux-2.6-arm 2009-10-02 16:20:43 -07:00
mtd block: use normal I/O path for discard requests 2009-10-01 21:19:30 +02:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2009-10-02 13:37:18 -07:00
nubus
of of: remove "stm,m25p40" alias 2009-09-23 07:39:43 -07:00
oprofile cpumask: use zalloc_cpumask_var() where possible 2009-09-24 09:34:24 +09:30
parisc mm: replace various uses of num_physpages by totalram_pages 2009-09-22 07:17:38 -07:00
parport sysctl: remove "struct file *" argument of ->proc_handler 2009-09-24 07:21:04 -07:00
pci ACPICA: fixup after acpi_get_object_info() change 2009-09-25 14:24:22 -04:00
pcmcia Merge master.kernel.org:/home/rmk/linux-2.6-arm 2009-10-02 16:20:43 -07:00
platform Merge branches 'sony-laptop', 'bugzilla-14247' and 'bugzilla-14271' into release 2009-10-02 11:27:57 -04:00
pnp ACPI: remove acpi_device.flags.hardware_id 2009-09-25 15:09:48 -04:00
power Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2009-09-23 03:49:27 +04:00
pps
ps3
rapidio
regulator regulator: fix voltage range in da9034 ldo12 2009-09-22 13:58:23 +01:00
rtc Merge branch 'origin' into for-linus 2009-09-24 21:22:33 +01:00
s390 [S390] Fix memory leak in /proc/cio_ignore 2009-10-06 10:35:07 +02:00
sbus const: make block_device_operations const 2009-09-22 07:17:25 -07:00
scsi const: constify remaining file_operations 2009-10-01 16:11:11 -07:00
serial Merge master.kernel.org:/home/rmk/linux-2.6-arm 2009-10-02 16:20:43 -07:00
sfi SFI: remove __init from sfi_verify_table 2009-10-03 01:16:12 -04:00
sh
sn
spi spi-imx: strip down chipselect function to only drive the chipselect 2009-10-01 16:11:17 -07:00
ssb ssb/sdio: fix printk format warnings 2009-09-23 11:35:41 -04:00
staging Merge branch 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging 2009-10-04 14:59:14 -07:00
tc
telephony
thermal
uio const: mark struct vm_struct_operations 2009-09-27 11:39:25 -07:00
usb headers: remove sched.h from poll.h 2009-10-04 15:05:10 -07:00
uwb const: constify remaining file_operations 2009-10-01 16:11:11 -07:00
video Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2009-10-02 13:37:18 -07:00
virtio virtio: add virtio IDs file 2009-09-23 22:26:32 +09:30
vlynq drivers/vlynq/vlynq.c: fix resource size off by 1 error 2009-09-24 07:21:05 -07:00
w1 ds2482: Discard obsolete detect method 2009-10-04 22:53:41 +02:00
watchdog [WATCHDOG] Add support for the Avionic Design Xanthos watchdog timer. 2009-09-25 08:38:16 +00:00
xen headers: remove sched.h from poll.h 2009-10-04 15:05:10 -07:00
zorro
Kconfig
Makefile Merge git://git.infradead.org/mtd-2.6 2009-09-23 10:07:49 -07:00