bridge: Fix IGMP3 report parsing
authorHerbert Xu <herbert@gondor.apana.org.au>
Thu, 8 Apr 2010 04:20:47 +0000 (21:20 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 8 Apr 2010 04:20:47 +0000 (21:20 -0700)
The IGMP3 report parsing is looking at the wrong address for
group records.  This patch fixes it.

Reported-by: Banyeer <banyeer@yahoo.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/bridge/br_multicast.c

index 6980625..f29ada8 100644 (file)
@@ -723,7 +723,7 @@ static int br_multicast_igmp3_report(struct net_bridge *br,
                if (!pskb_may_pull(skb, len))
                        return -EINVAL;
 
-               grec = (void *)(skb->data + len);
+               grec = (void *)(skb->data + len - sizeof(*grec));
                group = grec->grec_mca;
                type = grec->grec_type;