summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@osdl.org>2006-07-14 14:49:32 -0700
committerDavid S. Miller <davem@davemloft.net>2006-07-14 14:49:32 -0700
commit53602f92dd3691616478a40738353694bcfef171 (patch)
tree65ddb88b0d63d6a52222063cb31f7041859e827d /net
parent27b437c8b7d519aac70a0254c2e04c29eff565a2 (diff)
downloadlinux-53602f92dd3691616478a40738353694bcfef171.tar.gz
linux-53602f92dd3691616478a40738353694bcfef171.tar.bz2
linux-53602f92dd3691616478a40738353694bcfef171.zip
[IPV4]: Clear skb cb on IP input
when data arrives at IP through loopback (and possibly other devices). So the field needs to be cleared before it confuses the route code. This was seen when running netem over loopback, but there are probably other device cases. Maybe this should go into stable? Signed-off-by: Stephen Hemminger <shemminger@osdl.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r--net/ipv4/ip_input.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/ipv4/ip_input.c b/net/ipv4/ip_input.c
index e1a7dba2fa8a..184c78ca79e6 100644
--- a/net/ipv4/ip_input.c
+++ b/net/ipv4/ip_input.c
@@ -428,6 +428,9 @@ int ip_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt,
goto drop;
}
+ /* Remove any debris in the socket control block */
+ memset(&(IPCB(skb)->opt), 0, sizeof(struct ip_options));
+
return NF_HOOK(PF_INET, NF_IP_PRE_ROUTING, skb, dev, NULL,
ip_rcv_finish);