linux/net
Johannes Berg 68d6ac6d27 netlink: fix compat recvmsg
Since
commit 1dacc76d00
Author: Johannes Berg <johannes@sipsolutions.net>
Date:   Wed Jul 1 11:26:02 2009 +0000

    net/compat/wext: send different messages to compat tasks

we had a race condition when setting and then
restoring frag_list. Eric attempted to fix it,
but the fix created even worse problems.

However, the original motivation I had when I
added the code that turned out to be racy is
no longer clear to me, since we only copy up
to skb->len to userspace, which doesn't include
the frag_list length. As a result, not doing
any frag_list clearing and restoring avoids
the race condition, while not introducing any
other problems.

Additionally, while preparing this patch I found
that since none of the remaining netlink code is
really aware of the frag_list, we need to use the
original skb's information for packet information
and credentials. This fixes, for example, the
group information received by compat tasks.

Cc: Eric Dumazet <eric.dumazet@gmail.com>
Cc: stable@kernel.org [2.6.31+, for 2.6.35 revert 1235f504aa]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2010-08-18 23:35:58 -07:00
..
9p fs/9p: destroy fid on failed remove 2010-08-02 14:28:36 -05:00
802
8021q
appletalk
atm ppp: make channel_ops const 2010-08-04 21:53:17 -07:00
ax25
bluetooth Bluetooth: Fix incorrect setting of remote_tx_win for L2CAP ERTM 2010-08-10 07:59:11 -04:00
bridge Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-08-02 22:22:46 -07:00
caif caif: Bugfix - Increase default headroom size for control channel. 2010-08-10 16:39:27 -07:00
can can: add limit for nframes and clean up signed/unsigned variables 2010-08-11 16:12:35 -07:00
core net: Fix a memmove bug in dev_gro_receive() 2010-08-17 17:37:28 -07:00
dcb
dccp
decnet
dsa phylib: available for any speed ethernet 2010-08-11 23:03:50 -07:00
econet
ethernet
ieee802154
ipv4 netfilter: {ip,ip6,arp}_tables: avoid lockdep false positive 2010-08-17 15:12:14 -07:00
ipv6 netfilter: {ip,ip6,arp}_tables: avoid lockdep false positive 2010-08-17 15:12:14 -07:00
ipx
irda ppp: make channel_ops const 2010-08-04 21:53:17 -07:00
iucv
key
l2tp ppp: make channel_ops const 2010-08-04 21:53:17 -07:00
lapb
llc
mac80211 mac80211: Fix compilation warning when CONFIG_INET is not set 2010-08-04 15:28:37 -04:00
netfilter Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-08-04 15:31:02 -07:00
netlabel
netlink netlink: fix compat recvmsg 2010-08-18 23:35:58 -07:00
netrom
packet
phonet
rds
rfkill
rose net/rose: Use GFP_ATOMIC 2010-08-01 00:32:12 -07:00
rxrpc RxRPC: Fix a potential deadlock between the call resend_timer and state_lock 2010-08-04 21:53:16 -07:00
sched net sched: fix some kernel memory leaks 2010-08-17 15:12:15 -07:00
sctp Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-08-04 15:31:02 -07:00
sunrpc mm: add context argument to shrinker callback to remaining shrinkers 2010-07-21 15:33:01 +10:00
tipc
unix
wanrouter
wimax
wireless cfg80211: fix locking in action frame TX 2010-08-09 15:18:57 -04:00
x25
xfrm xfrm: Use GFP_ATOMIC in xfrm_compile_policy 2010-08-14 22:38:09 -07:00
compat.c
Kconfig wireless: Make COMPAT_NETLINK_MESSAGES depend upon WEXT_CORE 2010-07-26 13:13:49 -07:00
Makefile
nonet.c
socket.c
sysctl_net.c
TUNABLE