aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/fib_semantics.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2011-03-08 14:03:21 -0500
committerDavid S. Miller <davem@davemloft.net>2011-03-08 14:03:21 -0500
commita7ac8fc1d8d26c975c460a69aa7b9d5b5d5d29b0 (patch)
treed7487dfcbe87a8e57ce666d9febd1199e46c7b46 /net/ipv4/fib_semantics.c
parent1fc050a13473348f5c439de2bb41c8e92dba5588 (diff)
ipv4: Fix scope value used in route src-address caching.
We have to use cfg->fc_scope not the final nh_scope value. Reported-by: Julian Anastasov <ja@ssi.bg> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/fib_semantics.c')
-rw-r--r--net/ipv4/fib_semantics.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c
index 952c737f2a27..d73d7581b51f 100644
--- a/net/ipv4/fib_semantics.c
+++ b/net/ipv4/fib_semantics.c
@@ -854,9 +854,10 @@ struct fib_info *fib_create_info(struct fib_config *cfg)
854 } 854 }
855 855
856 change_nexthops(fi) { 856 change_nexthops(fi) {
857 nexthop_nh->nh_cfg_scope = cfg->fc_scope;
857 nexthop_nh->nh_saddr = inet_select_addr(nexthop_nh->nh_dev, 858 nexthop_nh->nh_saddr = inet_select_addr(nexthop_nh->nh_dev,
858 nexthop_nh->nh_gw, 859 nexthop_nh->nh_gw,
859 nexthop_nh->nh_scope); 860 nexthop_nh->nh_cfg_scope);
860 } endfor_nexthops(fi) 861 } endfor_nexthops(fi)
861 862
862link_it: 863link_it:
@@ -1141,7 +1142,7 @@ void fib_update_nh_saddrs(struct net_device *dev)
1141 continue; 1142 continue;
1142 nh->nh_saddr = inet_select_addr(nh->nh_dev, 1143 nh->nh_saddr = inet_select_addr(nh->nh_dev,
1143 nh->nh_gw, 1144 nh->nh_gw,
1144 nh->nh_scope); 1145 nh->nh_cfg_scope);
1145 } 1146 }
1146} 1147}
1147 1148