linux/net
Guillaume Nault 8b82547e33 l2tp: Restore socket refcount when sendmsg succeeds
The sendmsg() syscall handler for PPPoL2TP doesn't decrease the socket
reference counter after successful transmissions. Any successful
sendmsg() call from userspace will then increase the reference counter
forever, thus preventing the kernel's session and tunnel data from
being freed later on.

The problem only happens when writing directly on L2TP sockets.
PPP sockets attached to L2TP are unaffected as the PPP subsystem
uses pppol2tp_xmit() which symmetrically increase/decrease reference
counters.

This patch adds the missing call to sock_put() before returning from
pppol2tp_sendmsg().

Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-03-01 14:13:09 -05:00
..
9p Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2013-02-25 16:00:49 -08:00
802 mrp: make mrp_rcv static 2013-02-11 14:16:26 -05:00
8021q net: proc: change proc_net_remove to remove_proc_entry 2013-02-18 14:53:08 -05:00
appletalk
atm net: proc: change proc_net_remove to remove_proc_entry 2013-02-18 14:53:08 -05:00
ax25 net: proc: change proc_net_remove to remove_proc_entry 2013-02-18 14:53:08 -05:00
batman-adv Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net into net 2013-02-18 23:34:21 -05:00
bluetooth Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2013-02-21 17:40:58 -08:00
bridge bridge: make ifla_br_policy and br_af_ops static 2013-02-14 13:27:45 -05:00
caif Merge branch 'master' into for-next 2013-01-29 10:48:30 +01:00
can net: proc: change proc_net_remove to remove_proc_entry 2013-02-18 14:53:08 -05:00
ceph Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2013-02-25 16:00:49 -08:00
core Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-02-26 11:44:11 -08:00
dcb net: Allow DCBnl to use other namespaces besides init_net 2012-12-10 14:09:01 -05:00
dccp Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
decnet Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
dns_resolver Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security 2012-12-16 15:40:50 -08:00
dsa dsa: make dsa_switch_setup check for valid port names 2013-01-21 15:40:12 -05:00
ethernet net: split eth_mac_addr for better error handling 2013-01-21 14:07:44 -05:00
ieee802154 Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
ipv4 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-02-26 11:44:11 -08:00
ipv6 Merge branch 'akpm' (incoming from Andrew) 2013-02-21 17:38:49 -08:00
ipx
irda irda: small read beyond end of array in debug code 2013-02-27 13:10:35 -05:00
iucv iucv: fix kernel panic at reboot 2013-02-14 15:55:19 +01:00
key net: proc: change proc_net_remove to remove_proc_entry 2013-02-18 14:53:08 -05:00
l2tp l2tp: Restore socket refcount when sendmsg succeeds 2013-03-01 14:13:09 -05:00
lapb net/lapb: remove depends on CONFIG_EXPERIMENTAL 2013-01-11 11:40:01 -08:00
llc net: Allow userns root to control llc, netfilter, netlink, packet, and xfrm 2012-11-18 20:32:45 -05:00
mac80211 Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
mac802154 Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
netfilter Merge branch 'master' of git://1984.lsi.us.es/nf 2013-02-26 17:24:26 -05:00
netlabel Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2012-10-02 13:38:27 -07:00
netlink net: proc: change proc_net_remove to remove_proc_entry 2013-02-18 14:53:08 -05:00
netrom net: proc: change proc_net_remove to remove_proc_entry 2013-02-18 14:53:08 -05:00
nfc Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
openvswitch Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-02-08 18:02:14 -05:00
packet net: proc: change proc_net_remove to remove_proc_entry 2013-02-18 14:53:08 -05:00
phonet net: proc: change proc_net_remove to remove_proc_entry 2013-02-18 14:53:08 -05:00
rds net/rds: remove depends on CONFIG_EXPERIMENTAL 2013-01-11 11:40:02 -08:00
rfkill rfkill: don't use [delayed_]work_pending() 2012-12-28 13:40:16 -08:00
rose net: proc: change proc_net_remove to remove_proc_entry 2013-02-18 14:53:08 -05:00
rxrpc Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
sched net: proc: change proc_net_remove to remove_proc_entry 2013-02-18 14:53:08 -05:00
sctp sctp: fix association hangs due to partial delivery errors 2013-02-28 15:34:27 -05:00
sunrpc Main batch of InfiniBand/RDMA changes for 3.9: 2013-02-26 11:41:08 -08:00
tipc Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
unix net: proc: change proc_net_remove to remove_proc_entry 2013-02-18 14:53:08 -05:00
vmw_vsock VSOCK: Don't reject PF_VSOCK protocol 2013-02-18 15:02:51 -05:00
wimax
wireless Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2013-02-19 14:56:34 -05:00
x25 net/x25: remove depends on CONFIG_EXPERIMENTAL 2013-01-11 11:40:03 -08:00
xfrm Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
compat.c
Kconfig Driver core patches for 3.9-rc1 2013-02-21 12:05:51 -08:00
Makefile VSOCK: Introduce VM Sockets 2013-02-10 19:41:08 -05:00
nonet.c
socket.c ethtool: fix sparse warning 2013-02-11 14:16:26 -05:00
sysctl_net.c user_ns: get rid of duplicate code in net_ctl_permissions 2012-11-18 20:32:45 -05:00