[IPV4]: OOPS with NETLINK_FIB_LOOKUP netlink socket
authorDenis V. Lunev <den@openvz.org>
Fri, 21 Dec 2007 10:01:53 +0000 (02:01 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 21 Dec 2007 10:01:53 +0000 (02:01 -0800)
commitd883a0367149506e8b7a3f31891d1ea30b9377f3
treed016dc1959372baa50e6d64f76ff14bbe3c8927b
parent1ac70e7ad24a88710cf9b6d7ababaefa2b575df0
[IPV4]: OOPS with NETLINK_FIB_LOOKUP netlink socket

[ Regression added by changeset:
cd40b7d3983c708aabe3d3008ec64ffce56d33b0
[NET]: make netlink user -> kernel interface synchronious
  -DaveM ]

nl_fib_input re-reuses incoming skb to send the reply. This means that this
packet will be freed twice, namely in:
- netlink_unicast_kernel
- on receive path
Use clone to send as a cure, the caller is responsible for kfree_skb on error.

Thanks to Alexey Dobryan, who originally found the problem.

Signed-off-by: Denis V. Lunev <den@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/fib_frontend.c