diff --git a/net/ipv4/icmp.c b/net/ipv4/icmp.c index 4cbc1bb85ac09e927fa98b683239961adaa21a30..e03003a9c6b003fd6be66332c5463bd6d0628e40 100644 --- a/net/ipv4/icmp.c +++ b/net/ipv4/icmp.c @@ -525,6 +525,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