aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/ipv6/addrconf.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index 1237d5d037d8..5fd8ec895c8b 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -1070,8 +1070,10 @@ static int ipv6_get_saddr_eval(struct net *net,
1070 break; 1070 break;
1071 case IPV6_SADDR_RULE_PREFIX: 1071 case IPV6_SADDR_RULE_PREFIX:
1072 /* Rule 8: Use longest matching prefix */ 1072 /* Rule 8: Use longest matching prefix */
1073 score->matchlen = ret = ipv6_addr_diff(&score->ifa->addr, 1073 ret = ipv6_addr_diff(&score->ifa->addr, dst->addr);
1074 dst->addr); 1074 if (ret > score->ifa->prefix_len)
1075 ret = score->ifa->prefix_len;
1076 score->matchlen = ret;
1075 break; 1077 break;
1076 default: 1078 default:
1077 ret = 0; 1079 ret = 0;