|
@@ -1020,11 +1020,12 @@ static int br_ip6_multicast_mld2_report(struct net_bridge *br,
|
|
|
|
|
|
if (!pskb_may_pull(skb,
|
|
if (!pskb_may_pull(skb,
|
|
len + sizeof(*grec) +
|
|
len + sizeof(*grec) +
|
|
- sizeof(struct in6_addr) * (*nsrcs)))
|
|
|
|
|
|
+ sizeof(struct in6_addr) * ntohs(*nsrcs)))
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
|
|
|
|
grec = (struct mld2_grec *)(skb->data + len);
|
|
grec = (struct mld2_grec *)(skb->data + len);
|
|
- len += sizeof(*grec) + sizeof(struct in6_addr) * (*nsrcs);
|
|
|
|
|
|
+ len += sizeof(*grec) +
|
|
|
|
+ sizeof(struct in6_addr) * ntohs(*nsrcs);
|
|
|
|
|
|
/* We treat these as MLDv1 reports for now. */
|
|
/* We treat these as MLDv1 reports for now. */
|
|
switch (grec->grec_type) {
|
|
switch (grec->grec_type) {
|