bridge: fix igmp / mld query parsing
authorLinus Lüssing <linus.luessing@c0d3.blue>
Wed, 4 May 2016 15:25:02 +0000 (17:25 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 6 May 2016 16:55:13 +0000 (12:55 -0400)
commit856ce5d083e14571d051301fe3c65b32b8cbe321
tree64234033bc87756e7aa9140f97d1a9c66bce5925
parent31ca0458a61a502adb7ed192bf9716c6d05791a5
bridge: fix igmp / mld query parsing

With the newly introduced helper functions the skb pulling is hidden
in the checksumming function - and undone before returning to the
caller.

The IGMP and MLD query parsing functions in the bridge still
assumed that the skb is pointing to the beginning of the IGMP/MLD
message while it is now kept at the beginning of the IPv4/6 header.

If there is a querier somewhere else, then this either causes
the multicast snooping to stay disabled even though it could be
enabled. Or, if we have the querier enabled too, then this can
create unnecessary IGMP / MLD query messages on the link.

Fixing this by taking the offset between IP and IGMP/MLD header into
account, too.

Fixes: 9afd85c9e455 ("net: Export IGMP/MLD message validation code")
Reported-by: Simon Wunderlich <sw@simonwunderlich.de>
Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/bridge/br_multicast.c