linux-uconsole/include
Mikulas Patocka b09e786bd1 tun: fix a crash bug and a memory leak
This patch fixes a crash
tun_chr_close -> netdev_run_todo -> tun_free_netdev -> sk_release_kernel ->
sock_release -> iput(SOCK_INODE(sock))
introduced by commit 1ab5ecb90c

The problem is that this socket is embedded in struct tun_struct, it has
no inode, iput is called on invalid inode, which modifies invalid memory
and optionally causes a crash.

sock_release also decrements sockets_in_use, this causes a bug that
"sockets: used" field in /proc/*/net/sockstat keeps on decreasing when
creating and closing tun devices.

This patch introduces a flag SOCK_EXTERNALLY_ALLOCATED that instructs
sock_release to not free the inode and not decrement sockets_in_use,
fixing both memory corruption and sockets_in_use underflow.

It should be backported to 3.3 an 3.4 stabke.

Signed-off-by: Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
Cc: stable@kernel.org
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-07-20 11:21:06 -07:00
..
acpi ACPI: fix acpi_bus.h build warnings when ACPI is not enabled 2012-06-04 00:29:11 -04:00
asm-generic mm: cma: fix condition check when setting global cma area 2012-07-06 12:02:04 +02:00
crypto
drm drm: drop comment about this header being autogenerated. 2012-06-22 11:04:55 +01:00
keys
linux tun: fix a crash bug and a memory leak 2012-07-20 11:21:06 -07:00
math-emu
media
memory
misc
mtd
net net: rename bond_queue_mapping to slave_dev_queue_mapping 2012-07-20 11:07:00 -07:00
pcmcia
rdma
rxrpc
scsi [SCSI] libsas: fix taskfile corruption in sas_ata_qc_fill_rtf 2012-07-08 09:49:14 +01:00
sound Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media 2012-06-25 14:53:09 -07:00
target target: Add TFO->put_session() caller for HW fabric session shutdown 2012-06-12 19:33:05 -07:00
trace rcu: Update RCU_FAST_NO_HZ tracing for lazy callbacks 2012-06-06 20:43:27 -07:00
video fbdev updates for 3.5 2012-06-01 16:57:51 -07:00
xen
Kbuild