summaryrefslogtreecommitdiffstats
path: root/net/ipv4/ip_output.c
diff options
context:
space:
mode:
authorJulian Anastasov <ja@ssi.bg>2011-08-07 12:17:22 +0200
committerDavid S. Miller <davem@davemloft.net>2011-08-08 07:52:32 +0200
commitd52fbfc9e5c7bb0b0dbc256edf17dee170ce839d (patch)
tree47ed6e6ba7313703cf5ab9555070afd1e1f67573 /net/ipv4/ip_output.c
parentipv4: route non-local sources for raw socket (diff)
downloadlinux-d52fbfc9e5c7bb0b0dbc256edf17dee170ce839d.tar.xz
linux-d52fbfc9e5c7bb0b0dbc256edf17dee170ce839d.zip
ipv4: use dst with ref during bcast/mcast loopback
Make sure skb dst has reference when moving to another context. Currently, I don't see protocols that can hit it when sending broadcasts/multicasts to loopback using noref dsts, so it is just a precaution. Signed-off-by: Julian Anastasov <ja@ssi.bg> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/ip_output.c')
-rw-r--r--net/ipv4/ip_output.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c
index 77d3eded665a..8c6563361ab5 100644
--- a/net/ipv4/ip_output.c
+++ b/net/ipv4/ip_output.c
@@ -122,6 +122,7 @@ static int ip_dev_loopback_xmit(struct sk_buff *newskb)
newskb->pkt_type = PACKET_LOOPBACK;
newskb->ip_summed = CHECKSUM_UNNECESSARY;
WARN_ON(!skb_dst(newskb));
+ skb_dst_force(newskb);
netif_rx_ni(newskb);
return 0;
}