diff --git a/net/ipv4/icmp.c b/net/ipv4/icmp.c index 9dffdd876fef501d5fa31698bb85c9f73dedc1e5..b40c1fc3912518936b290e575e48174f8da917d8 100644 --- a/net/ipv4/icmp.c +++ b/net/ipv4/icmp.c @@ -521,6 +521,9 @@ static struct rtable *icmp_route_lookup(struct net *net, if (!IS_ERR(rt)) { if (rt != rt2) return rt; + if (inet_addr_type_dev_table(net, route_lookup_dev, + fl4->daddr) == RTN_LOCAL) + return rt; } else if (PTR_ERR(rt) == -EPERM) { rt = NULL; } else