diff options
Diffstat (limited to 'net/bridge/br_multicast.c')
-rw-r--r-- | net/bridge/br_multicast.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index ed19b0a730ab..8ccdb8ee3928 100644 --- a/net/bridge/br_multicast.c +++ b/net/bridge/br_multicast.c | |||
@@ -723,7 +723,7 @@ static int br_multicast_igmp3_report(struct net_bridge *br, | |||
723 | if (!pskb_may_pull(skb, len)) | 723 | if (!pskb_may_pull(skb, len)) |
724 | return -EINVAL; | 724 | return -EINVAL; |
725 | 725 | ||
726 | grec = (void *)(skb->data + len); | 726 | grec = (void *)(skb->data + len - sizeof(*grec)); |
727 | group = grec->grec_mca; | 727 | group = grec->grec_mca; |
728 | type = grec->grec_type; | 728 | type = grec->grec_type; |
729 | 729 | ||
@@ -1003,8 +1003,6 @@ static int br_multicast_ipv4_rcv(struct net_bridge *br, | |||
1003 | if (!pskb_may_pull(skb2, sizeof(*ih))) | 1003 | if (!pskb_may_pull(skb2, sizeof(*ih))) |
1004 | goto out; | 1004 | goto out; |
1005 | 1005 | ||
1006 | iph = ip_hdr(skb2); | ||
1007 | |||
1008 | switch (skb2->ip_summed) { | 1006 | switch (skb2->ip_summed) { |
1009 | case CHECKSUM_COMPLETE: | 1007 | case CHECKSUM_COMPLETE: |
1010 | if (!csum_fold(skb2->csum)) | 1008 | if (!csum_fold(skb2->csum)) |