forked from luck/tmp_suning_uos_patched
ipv4: Remove erroneous check in igmpv3_newpack() and igmp_send_report().
Output route resolution never returns a route with rt_src set to zero (which is INADDR_ANY). Even if the flow key for the output route lookup specifies INADDR_ANY for the source address, the output route resolution chooses a real source address to use in the final route. This test has existed forever in igmp_send_report() and David Stevens simply copied over the erroneous test when implementing support for IGMPv3. Signed-off-by: David S. Miller <davem@davemloft.net> Reviewed-by: Eric Dumazet <eric.dumazet@gmail.com>
This commit is contained in:
parent
2d7192d6cb
commit
2e97e980b5
@ -328,11 +328,6 @@ static struct sk_buff *igmpv3_newpack(struct net_device *dev, int size)
|
|||||||
kfree_skb(skb);
|
kfree_skb(skb);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
if (rt->rt_src == 0) {
|
|
||||||
kfree_skb(skb);
|
|
||||||
ip_rt_put(rt);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
skb_dst_set(skb, &rt->dst);
|
skb_dst_set(skb, &rt->dst);
|
||||||
skb->dev = dev;
|
skb->dev = dev;
|
||||||
@ -670,11 +665,6 @@ static int igmp_send_report(struct in_device *in_dev, struct ip_mc_list *pmc,
|
|||||||
if (IS_ERR(rt))
|
if (IS_ERR(rt))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (rt->rt_src == 0) {
|
|
||||||
ip_rt_put(rt);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
skb = alloc_skb(IGMP_SIZE+LL_ALLOCATED_SPACE(dev), GFP_ATOMIC);
|
skb = alloc_skb(IGMP_SIZE+LL_ALLOCATED_SPACE(dev), GFP_ATOMIC);
|
||||||
if (skb == NULL) {
|
if (skb == NULL) {
|
||||||
ip_rt_put(rt);
|
ip_rt_put(rt);
|
||||||
|
Loading…
Reference in New Issue
Block a user