aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2011-05-09 16:28:22 -0400
committerDavid S. Miller <davem@davemloft.net>2011-05-10 16:32:46 -0400
commit9f6abb5f175bdb9ecfd390000a631bf0abf2fedb (patch)
tree696cd97e0cdc67c9a0dcbf0ad1e2fd0626e221ee /net/ipv4
parent0a5ebb8000c5362be368df9d197943deb06b6916 (diff)
ipv4: icmp: Eliminate remaining uses of rt->rt_src
On input packets, rt->rt_src always equals ip_hdr(skb)->saddr Anything that mangles or otherwise changes the IP header must relookup the route found at skb_rtable(). Therefore this invariant must always hold true. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4')
-rw-r--r--net/ipv4/icmp.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/net/ipv4/icmp.c b/net/ipv4/icmp.c
index 853a670f6df..3314394f0aa 100644
--- a/net/ipv4/icmp.c
+++ b/net/ipv4/icmp.c
@@ -345,7 +345,7 @@ static void icmp_reply(struct icmp_bxm *icmp_param, struct sk_buff *skb)
345 icmp_param->data.icmph.checksum = 0; 345 icmp_param->data.icmph.checksum = 0;
346 346
347 inet->tos = ip_hdr(skb)->tos; 347 inet->tos = ip_hdr(skb)->tos;
348 daddr = ipc.addr = rt->rt_src; 348 daddr = ipc.addr = ip_hdr(skb)->saddr;
349 ipc.opt = NULL; 349 ipc.opt = NULL;
350 ipc.tx_flags = 0; 350 ipc.tx_flags = 0;
351 if (icmp_param->replyopts.opt.opt.optlen) { 351 if (icmp_param->replyopts.opt.opt.optlen) {
@@ -930,12 +930,12 @@ static void icmp_address_reply(struct sk_buff *skb)
930 BUG_ON(mp == NULL); 930 BUG_ON(mp == NULL);
931 for (ifa = in_dev->ifa_list; ifa; ifa = ifa->ifa_next) { 931 for (ifa = in_dev->ifa_list; ifa; ifa = ifa->ifa_next) {
932 if (*mp == ifa->ifa_mask && 932 if (*mp == ifa->ifa_mask &&
933 inet_ifa_match(rt->rt_src, ifa)) 933 inet_ifa_match(ip_hdr(skb)->saddr, ifa))
934 break; 934 break;
935 } 935 }
936 if (!ifa && net_ratelimit()) { 936 if (!ifa && net_ratelimit()) {
937 printk(KERN_INFO "Wrong address mask %pI4 from %s/%pI4\n", 937 printk(KERN_INFO "Wrong address mask %pI4 from %s/%pI4\n",
938 mp, dev->name, &rt->rt_src); 938 mp, dev->name, &ip_hdr(skb)->saddr);
939 } 939 }
940 } 940 }
941} 941}