|
@@ -1487,9 +1487,8 @@ static int ip_route_input_mc(struct sk_buff *skb, __be32 daddr, __be32 saddr,
|
|
skb->protocol != htons(ETH_P_IP))
|
|
skb->protocol != htons(ETH_P_IP))
|
|
goto e_inval;
|
|
goto e_inval;
|
|
|
|
|
|
- if (likely(!IN_DEV_ROUTE_LOCALNET(in_dev)))
|
|
|
|
- if (ipv4_is_loopback(saddr))
|
|
|
|
- goto e_inval;
|
|
|
|
|
|
+ if (ipv4_is_loopback(saddr) && !IN_DEV_ROUTE_LOCALNET(in_dev))
|
|
|
|
+ goto e_inval;
|
|
|
|
|
|
if (ipv4_is_zeronet(saddr)) {
|
|
if (ipv4_is_zeronet(saddr)) {
|
|
if (!ipv4_is_local_multicast(daddr))
|
|
if (!ipv4_is_local_multicast(daddr))
|