diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index 6980625537caa15e5f0a479eccca15c3341073a3..f29ada827a6acfe04afd7e3752724013ac58c27f 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, 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;